Appel fonction extern dans le programme C

Fermé
akanechan Messages postés 1 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 13 janvier 2009 - 13 janv. 2009 à 11:43
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 janv. 2009 à 16:42
Bonjour,

Je cherche comment faire pour appeler un executable en exterieur du programme C et je voudrais aussi avoir le resultat de retour pour modifier un parametre dans le programme C.
J'ai trouve que on peut utiliser la famille "exec" mais d'apres la doc, ils ne retournent pas de valeur en cas de success. Mais moi j'ai besoin le resultat de l'execution. Comment faire? Quelqu'un a deja fait qqch pareil?

Merci bcp par avance :)

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
13 janv. 2009 à 16:35
je pense que la commande system() est idéale, car elle retourne directement le code retour du programme invoqué.
En plus, elle est simple à utiliser et sachant qu'il n'est pas demander d'interaction entre les deux programme suffisante. Une pipe est inutile.
1
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
13 janv. 2009 à 14:23
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/system.3.html
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
13 janv. 2009 à 16:24
Salut,
Tu as plusieurs choix. Tu peux par exemple le faire par des pipes.
Ensuite tu crées un processus fils (fork dans le monde linux, CreateProcess sur windows je crois). Tu transformes le second en ton programme avec lequel tu vas recevoir les informations (famille exec...).
Et tu peux les faire communiquer par des pipes (man pipe pour créer une paire de descripteurs de fichiers, et man dup2 pour la connexion des pipes).
Cdlt
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
13 janv. 2009 à 16:42
Cela dépend de ce qu'il entend par : Mais moi j'ai besoin le resultat de l'execution
S'il a juste besoin de savoir si le programme a bien fonctionné ou pas, effectivement system() sera très bien. Par contre s'il a besoin du résultat du programme (comme par exemple les valeurs qui s'affiche à l'écran), la solution "system" ne marchera pas.
-1