Probleme avec commande SYSTEM
toto
-
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?
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?
A voir également:
- Probleme avec commande SYSTEM
- Invite de commande - Guide
- Reboot system now - Guide
- Commande terminal mac - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Commande dism - Guide
3 réponses
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)
;-))
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)
;-))
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
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