Rechercher : dans
Par :

Appel fonction extern dans le programme C

Dernière réponse le 13 jan 2009 à 16:42:54 akanechan, le 13 jan 2009 à 11:43:29 
 Signaler ce message aux modérateurs

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 :)

Configuration: Linux Fedora
Firefox 2.0.0.5

Meilleures réponses pour « Appel fonction extern dans le programme C » dans :
Interfacer du code assembleur et du C VoirInterfacer du code assembleur et du C Introduction Appeler du code assembleur écrit dans un fichier source externe Avec Nasm (x86 uniquement) Compilation/Exécution sous Linux Avec Gcc (multiplateforme) Introduction Si, à tout hasard,...
Les inlines en C++ VoirSignification Exemple 1 Inline et headers Exemple 2 Signification Le mot-clé inline est utilisé en C++ et s'applique à une fonction. Il indique au compilateur que chaque appel à la fonction inline devra être remplacé par le corps de cette...
Langage C - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Langage C++ - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Perl - Les fonctions VoirLa notion de fonction et de procédure On appelle procédure un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la procédure dans le corps du programme principal. Les procédure permettent d'exécuter dans plusieurs...

1

Char Snipeur, le 13 jan 2009 à 14:23:36
Répondre à Char Snipeur

2

fiddy, le 13 jan 2009 à 16:24:18

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
Google is your friend

Répondre à fiddy

3

Char Snipeur, le 13 jan 2009 à 16:35:04

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. Salutation !
Char Snipeur

Répondre à Char Snipeur

4

 fiddy, le 13 jan 2009 à 16:42:54

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.
Google is your friend

Répondre à fiddy
Collection CommentÇaMarche.net