by DVA2TLSE » Thu Sep 29, 2011 4:43 pm
Bonjour,
j’ai essayé de coder pas trop salement ce que tu m’as conseillé, et ça marche pas mal jusqu’au moment fatidique où j’utilise la fonction “system“. En effet, voici ce que ça donne, avec quelques commentaires après le // :
[code]"ppli: RETR: tcmd="/bin/hostname // tcmd est declare en unsigned char tcmd[PACKET_SIZE+1];
"ppli: RETR: scmd="/bin/hostname // scmd est déclaré en char *scmd;
")pli: RETR: Ok ici AVT system("/bin/hostname // résultat de printf("appli: RETR: Ok ici AV system(\"%s\")\n", scmd);
/bin/hostname // résultat de printf("%s\n", scmd);
sh: /bin/hostname^M: not found. // résultat de system(scmd);
")pli: RETR: Ok ici APR system("/bin/hostname // résultat de printf("appli: RETR: Ok ici APR system(\"%s\")\n", scmd);
/bin/hostname // résultat de printf("%s\n", scmd);
"ppli: RETR: tcmd="/bin/date
"ppli: RETR: scmd="/bin/date
")pli: RETR: Ok ici AVT system("/bin/date
/bin/date
sh: /bin/date^M: not found.
")pli: RETR: Ok ici APR system("/bin/date
/bin/date
"ppli: RETR: tcmd="/bin/echo toto
"ppli: RETR: scmd="/bin/echo toto
")pli: RETR: Ok ici AVT system("/bin/echo toto
/bin/echo toto
toto // YOUPI
")pli: RETR: Ok ici APR system("/bin/echo toto
/bin/echo toto[/code]
J’avais envoyé un mèl tout con sur le compte que j’ai créé pour ça, avec trois commandes :
[code]/bin/hostname
/bin/date
/bin/echo toto[/code]
On s’aperçoit que la troisième commande a bien marché, mais pas les deux premières. la fonction system() a du mal avec la fin de la chaine, comme quand on édite avec vi un texte qui n'est pas unix; et il se pose le même problème relatif aux fins de chaines avec la fonction printf() qui imprime en début de ligne le guillemet " qui devrait être mis en fin de ligne.
Et pourquoi l'echo marche-t'il alors que pas les autres ?
merci de m'aider à dépatouiller tout ça,
David