Execution de commande du shell ds un prgm C

Execution de commande du shell ds un prgm C - C++ - Programmation

Marsh Posté le 07-03-2003 à 23:06:06    

J'aimerais executer des commandes du shell (UNIX) dans un prgm C, et recuperer le resultat des commandes pour pouvoir les traiter ds le prgm.
J'ai vu qu'il existe les fonctions system() et exec() pour ca, mais je ne vois pas comment faire pour recuperer les resultats :??:
Autre question: qd j'utilise la commande "cd", ca ne fait rien (en fait je crois que le shell se ferme juste apres l'execution de la commande...). Comment remedier a ce pb?

Reply

Marsh Posté le 07-03-2003 à 23:06:06   

Reply

Marsh Posté le 07-03-2003 à 23:10:13    

man 3 popen

Reply

Marsh Posté le 08-03-2003 à 09:57:21    

@ttil@ a écrit :

J'aimerais executer des commandes du shell (UNIX) dans un prgm C, et recuperer le resultat des commandes pour pouvoir les traiter ds le prgm.
J'ai vu qu'il existe les fonctions system() et exec() pour ca, mais je ne vois pas comment faire pour recuperer les resultats :??:
Autre question: qd j'utilise la commande "cd", ca ne fait rien (en fait je crois que le shell se ferme juste apres l'execution de la commande...). Comment remedier a ce pb?
 


Le monsieur t'as dit que c'était chdir , ok le B......  [:rick@r]

Reply

Marsh Posté le 08-03-2003 à 12:51:24    

Rick@r a écrit :


Le monsieur t'as dit que c'était chdir , ok le B......  [:rick@r]  


Je cherchais une autre explication... :fou:
Et regarde un peu tes mails!

Reply

Marsh Posté le 08-03-2003 à 12:55:02    

++Taz a écrit :

man 3 popen


ok, merchi, ca marche :D

Reply

Marsh Posté le 08-03-2003 à 12:57:25    

@ttil@ a écrit :


ok, merchi, ca marche :D

si tu veux en savoir plus regarde le code source de popen qui est mélange pipe+fork+exec+dup+close+fdoen.
 
gaffe, le FILE* retourner n'est pas un flux positionnable (ben ouais, c'est un pipe  ;) )

Reply

Marsh Posté le 12-03-2003 à 13:16:05    

j'vous jure c't'attila!!!


Message édité par nartu elxe le 13-03-2003 à 13:37:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed