Probleme avec commande SYSTEM

toto -  
 toto -
Bonjour,

je suis débutant sous Linux et je suis en train d'écrire un programme sous Linux qui utilise la commande SYSTEM.

J'ai un gros souci, les commandes que je lance avec SYSTEM ont un comportement différent selon que je lance systeme("commande") ou que je crée une chaine de caractères qui contient commande et que j'appelle system(chaine) alors que le contenu est EXACTEMENT le même.

Dans le 2nd cas la commande réagit comme si elle tronquait la fin de ma chaine de caratères.

Connaissez vous ce souci?

3 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Tout d'abord, quelle distribution GNU/Linux utilises-tu ?
C'est quoi cette commande "SYSTEM" ? (inconnue au bataillon sous Mandriva et Ubuntu !!!)

Peux-tu nous donner des exemples concrets, s'il te plaît ? (comme nous coller les commandes et leurs résultats)

;-))
0
JacK
 
Salut,

Ton programme, il est écrit en quel langage ? (shell, C, perl...)
0
toto
 
Salut,

mon programme est en C, je suis sous Red Hat et la commande system permet de lancer une ligne de commande à partir d'un .c, moi je m'en sers pour faire des compressions/décompressions et recopie de fichiers.

Dans les exs suivants je veux extraire un fichier kod/ml/m.so d'une archive dont je ne connais pas le nom.

ex qui marche :

system("/bin/tar xvzf ../../../u/comp/*tar.gz kod/ml/m.so");

résultat : mon m.so est bien extrait

affichage

ex qui ne marche pas :

memcpy(&cde[0],"/bin/tar xvzf ../../../u/comp/*tar.gz kod/ml",44);

ptemp = strrchr((char *) Nom, 0x2F); (je récupère le nom de mon fichier en dynamique)

memcpy(&cde[49],&Nom[ptemp-Nom],(strlen(Nom)-(ptemp-Nom)+1));

system(cde);

resultat : on me decompresse tous les fichiers du répertoire kod/ml de l'archive.

Le truc bizarre est que si j'affiche les deux commandes elles sont identiques
0