[Résolu][C] Exécuter un programme dans un autre programme.

Exécuter un programme dans un autre programme. [Résolu][C] - C - Programmation

Marsh Posté le 30-12-2006 à 10:32:20    

Bonjour,
 
Tout d'abord je vous souhaite à tous de passer d'agréables vacances et fêtes. Venons en au but, voilà j'aimerais savoir si à partir d'un programme qu'on appellera "TEST", on peut exécuter d'autres programmes suivant le choix de l'utilisateur, je sais qu'on peut faire ça en considérant ces autres programmes comme des fonctions. Donc je souhaiterais savoir s'il n'y avait pas d'autre(s) possibilité(s) que celle-là? Merci d'avance pour vos réponses..
A bientôt...

Message cité 1 fois
Message édité par mat445 le 05-01-2007 à 21:46:53
Reply

Marsh Posté le 30-12-2006 à 10:32:20   

Reply

Marsh Posté le 30-12-2006 à 10:55:13    

mat445 a écrit :

Bonjour,
 
Tout d'abord je vous souhaite à tous de passer d'agréables vacances et fêtes.


Merci - Toi aussi...
 

mat445 a écrit :

Venons en au but, voilà j'aimerais savoir si à partir d'un programme qu'on appellera "TEST", on peut exécuter d'autres programmes suivant le choix de l'utilisateur, je sais qu'on peut faire ça en considérant ces autres programmes comme des fonctions. Donc je souhaiterais savoir s'il n'y avait pas d'autre(s) possibilité(s) que celle-là? Merci d'avance pour vos réponses..
A bientôt...


 
Deux solutions:
1) tu transformes tous tes programmes en fonction. Il suffit de renommer chaque "main" en un nom unique et si chaque source utilise des fonctions bien à lui, tu mets ces fonctions en "static" pour qu'elles ne soient vus que dans le source en question. Puis tu écrits ton "test.c" avec son main, tu compiles tous tes sources en modules objet ainsi que "test" puis tu linkes le tout en un exécutable
Détail ici (pour Unix) http://fr.lang.free.fr/cours/Gener [...] t_v1.0.pdf
 
2) tu crées un programme "test" destiné à appeler différents programmes externes => la fonction "system()" est faite pour ça. Si t'es sous unix et apparentés, tu peux aussi utiliser les fonctions "exec" ("les" parce qu'il y en a plusieurs) => execl, execv, execle, execve, execlp, execvp qui ont chacune leur particularité => détails ici: http://fr.lang.free.fr/cours/Processus_Csyst_v1.0.pdf


Message édité par Sve@r le 30-12-2006 à 10:55:34

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 30-12-2006 à 11:00:58    

Merci Sve@r pour ta réponse, au fait je tourne sous windows et j'utilise ChSCiTE comme éditeur, je programme qu'occasionnellement. Je vais regarder ce que tu m'as donné de plus près.
Merci encore a+...

Reply

Marsh Posté le 31-12-2006 à 09:37:22    

Sous Windows il me semble qu'il existe les fonctions ShellExecute et WinExec, ou tout simplement CreateProcess...

Reply

Marsh Posté le 01-01-2007 à 23:46:57    

WinExec, c'était pour Windows 3.1 si je me souviens bien.  
C'est plutôt ShellExecute(Ex) si tu ne veux pas garder la main, ou CreateProcess si on veut attendre la fin du process lancé.

Reply

Marsh Posté le 03-01-2007 à 20:34:51    

system("commande_a_executer" )
 
Fontionne tres bien...

Reply

Marsh Posté le 03-01-2007 à 21:43:50    

Ange_blond a écrit :

system("commande_a_executer" )
 
Fontionne tres bien...


Oui, bon t'as que 4 jours de retard... mais nous apprécions ton intervention... [:petrus75]


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 03-01-2007 à 22:01:48    

J'ai bien vu que ca avait déjà été dit merci...
mais comme ca commençai à diverger je me suis permis d'appuyer mon choix...

Reply

Marsh Posté le 03-01-2007 à 23:01:12    

Ange_blond a écrit :

J'ai bien vu que ca avait déjà été dit merci...
mais comme ca commençai à diverger


yes...
 

Ange_blond a écrit :

je me suis permis d'appuyer mon choix...


Bien dit !!!


Message édité par Sve@r le 04-01-2007 à 10:11:38

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 03-01-2007 à 23:43:51    

Ben si tu code en Java, ça doit pas etre défficile. tu peux meme faire des excécution parallèle avc les Threads.

Reply

Marsh Posté le 03-01-2007 à 23:43:51   

Reply

Marsh Posté le 04-01-2007 à 10:13:16    

asirem a écrit :

Ben si tu code en Java,


Oui, c'est assez courant dans un topic C... [:petrus75]

asirem a écrit :

tu peux meme faire des excécution parallèle avc les Threads.


On peut aussi le faire en C


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 04-01-2007 à 10:50:59    

asirem a écrit :

Ben si tu code en Java, ça doit pas etre défficile. tu peux meme faire des excécution parallèle avc les Threads.


Genre, c'est evident, tout le monde code en java  :sarcastic:  

Reply

Marsh Posté le 05-01-2007 à 21:46:07    

Merci à vous tous pour votre aide. J'ai résolu mon problème.
A bientôt...

Reply

Sujets relatifs:

Leave a Replay

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