Path: ...!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!cleanfeed3-a.proxad.net!nnrp1-2.free.fr!not-for-mail
Date: Sat, 4 Jan 2025 00:44:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: =?UTF-8?Q?Re=3A_Proc=C3=A9dure_ARGV?=
From: Good Old TOS <_remove_vision@atari.org>
To: OL
Newsgroups: fr.comp.sys.atari
References: <6776c99f$0$12931$426a74cc@news.free.fr>
<7JvJomHd6m_kGA6xXqpnj9n9gJ4@jntp> <67771a0a$0$29727$426a74cc@news.free.fr>
<6778159f$0$513$426a74cc@news.free.fr>
<677826a2$0$29717$426a74cc@news.free.fr>
<67785429$0$375$426a74cc@news.free.fr>
<677866ee$0$12914$426a34cc@news.free.fr>
Content-Language: fr
In-Reply-To: <677866ee$0$12914$426a34cc@news.free.fr>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 148
Message-ID: <6778765b$0$29730$426a34cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 04 Jan 2025 00:44:27 CET
NNTP-Posting-Host: 83.159.222.32
X-Trace: 1735947867 news-4.free.fr 29730 83.159.222.32:4499
X-Complaints-To: abuse@proxad.net
Bytes: 7387
Le 03/01/2025 à 23:38, Good Old TOS a écrit :
> Le 03/01/2025 à 22:34, OL a écrit :
>> Le 03/01/2025 à 22:18, Good Old TOS a écrit :
>>> Le 03/01/2025 à 19:11, OL a écrit :
>>>> Le 03/01/2025 à 19:07, OL a écrit :
>>>>> Le 03/01/2025 à 19:04, Good Old TOS a écrit :
>>>>>> Le 03/01/2025 à 17:51, Good Old TOS a écrit :
>>>>>>> Le 03/01/2025 à 17:33, OL a écrit :
>>>>>>>> Le 02/01/2025 à 23:58, Good Old TOS a écrit :
>>>>>>>>> Salut Olivier et bonne année!
>>>>>>>>>
>>>>>>>>> Sur https://www.atari-forum.com/viewtopic.php?t=44522
>>>>>>>>> Thorsten a posté un spawn qui compilé avec le cstartv.s posté à
>>>>>>>>> https://www.atari-forum.com/viewtopic.php?p=473831#p473831
>>>>>>>>> devrait faire l'affaire.
>>>>>>>>> J'ai un peu regardé mais je n'ai pas vu de différence notable
>>>>>>>>> dans les paramètres, juste les variables d'environnements en
>>>>>>>>> plus au début. J'ai essayé de récupérer sa routine pc_spawnve
>>>>>>>>> de spawn mais pas moyen d'arriver à un résultat concluant.
>>>>>>>>>
>>>>>>>>> Du coup je suis passé par un appel à /bin/sh qui ne me
>>>>>>>>> satisfait guère (exécution d'un shell + création d'un ficher
>>>>>>>>> temporaire) mais au moins ça marche.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Le 02/01/2025 à 19:42, OL a écrit :
>>>>>>>>>> Le 02/01/2025 à 18:15, Good Old TOS a écrit :
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> si certains ont suivi https://www.atari-forum.com/
>>>>>>>>>>> viewtopic.php? f=70&t=44522
>>>>>>>>>>> vous avez pu réaliser que je galère pas mal avec ARGV pour
>>>>>>>>>>> passer plus de 124 caractères en ligne de commande.
>>>>>>>>>>> Bref, j'ai laissé tomber et je laisse à sh le soin de passer
>>>>>>>>>>> correctement les paramètres à curl.
>>>>>>>>>>> Si jamais il y en a qui maitrise ARGV et qui arrive à faire
>>>>>>>>>>> l'appel suivant via Pexec (PURE C svp :-)):
>>>>>>>>>>> u:\usr\bin\curl -L --cacert cacert.pem --get https://
>>>>>>>>>>> vision2.atari.org/vupdate/staging/vision.ver --output H:
>>>>>>>>>>> \PURE_C\PROJECTS\VISION\UPDATE\vision.ver
>>>>>>>>>>> Faites moi signe :-)
>>>>>>>>>>>
>>>>>>>>>>> Attention: il y a un piège, parfois on croit que ça marche
>>>>>>>>>>> mais dans H:\PURE_C\PROJECTS\VISION\UPDATE\vision.ver, on y
>>>>>>>>>>> trouve que le fichier a été déplacé comme si -L avait été
>>>>>>>>>>> ignoré :-(
>>>>>>>>>>>
>>>>>>>>>>> A+,
>>>>>>>>>>> Jean
>>>>>>>>>>
>>>>>>>>>> Normalement je savais faire, on peut regarder si tu veux, mais
>>>>>>>>>> pas sur qu'à l'époque je n'étais que avec GCC. Pour vérifier
>>>>>>>>>> il te faudrait un client (qui remplace curl) et voir ce qu'il
>>>>>>>>>> retourne comme arguments.
>>>>>>>>>>
>>>>>>>>>> Olivier
>>>>>>>>
>>>>>>>> Je lit quelques commentaires que j'ai put faire, voilà ce qu'il
>>>>>>>> semble ressortir
>>>>>>>>
>>>>>>>> Ton problème ne serait pas dans la création de ARGV sous PureC,
>>>>>>>> en fait il faut recopier tout l'environnement de ton application
>>>>>>>> et rajouter ARGV à la fin, sinon l'application n'a pas
>>>>>>>> l'environnement, GCC il me semble fait tout dans ton dos de ce
>>>>>>>> que je me souvient et ne suit pas la documentation.
>>>>>>>> Je vais voir si je peux faire un exemple
>>>>>>>>
>>>>>>>> Olivier
>>>>>>> Salut Olivier,
>>>>>>> je pense que c'est ça mais en même m'inspirant du code de
>>>>>>> Thorsten, j'ai bien recréé l'environnement depuis Pure C mais
>>>>>>> même résultat (curl 27, out of memory)
>>>>>>> Mais si tu y arrives, je suis preneur :-)
>>>>>>> A+,
>>>>>>> Jean
>>>>>> Ah non erreur 27 c'était avant, avec l’environnement c'est
>>>>>> l'option - L de curl qui n'est pas prise en compte (d'où le
>>>>>> fichier généré qui dit juste que le doc a bougé)
>>>>>
>>>>> J'ai regardé ton code cela ne peut pas marcher à mon avis vu que
>>>>> c'est un argument qui est demandé par la commande pas un
>>>>> environnement donc tout doit être mis dans le même variable
>>>>> d'environnement
>>>>
>>>> Su tu préfère il faut remplacer les T par u:\usr\bin\curl -L --
>>>> cacert.....
>>>> Et si tu as des chemins avec des espaces il faut mettre le tout
>>>> entre ""
>>>>
>>>>
>>> -L est bien passé par les argv; je faisais référence à l’environnent
>>> car dans mes tests c'est vrai que rajouter l'environnement solutionne
>>> le pb du out of memory mais du coup je me retrouve avec le pb du -L
>>> ignoré
>>> Les "T"?
>>> J'ai essayé plein de trucs en passant par u:\, u:/, en récupérat
>>> l'env, en ajoutant un espace pour les paramètres dans valeur (e.g. -L
>>> vs --cacert cacert.pem); j'ai du/pu rater un truc c'est sur.
>>
>> Tu n'as pas lu mon 3eme message avec le code!
> Salut Olivier,
> ben je ne vois pas le code dans tes messages! J'utilise Thunderbird pour
> lire les news mais j'ai reçu ton email.
> Je vais regarder ton code et tester
Pareil :-( curl ignore le -L
Code:
long XPexec_eas(int mode, char* full_name, char* cmdline)
{
char buffer[1500] ;
char eas_cmd[1] ;
char* pt_env = buffer ;
char* source ;
char* envp = _BasPag->p_env ;
while( *envp )
{
while ( *envp ) *pt_env++ = *envp++ ;
*pt_env++ = 0 ;
envp++ ;
}
*pt_env++='A' ;
*pt_env++='R' ;
*pt_env++='G' ;
*pt_env++='V' ;
*pt_env++='=' ;
*pt_env++ = 0 ;
while ( *cmdline )
{
if ( *cmdline == ' ' ) *pt_env++ = 0 ; /* New parameter/value */
else if ( *cmdline == '\\' ) *pt_env++ = '/' ; /* Change \ to / */
else *pt_env++ = *cmdline ; /* Next char of
parameter/value */
cmdline++ ;
}
*pt_env++ = 0 ;
*pt_env = 0 ;
eas_cmd[0] = 127 ;
return Pexec( mode, full_name, eas_cmd, buffer ) ;
}
Appel: XPexec_eas( 0, "u:\\usr\\bin\\curl", "-L --cacert cacert.pem
--get https://vision2.atari.org/vupdate/staging/vision.ver --output
H:\\PURE_C\\PROJECTS\\VISION\\UPDATE\\vision.ver" ) ;