Par défaut C++ : appeler un .exe depuis le code

Par défaut C++ : appeler un .exe depuis le code - C++ - Programmation

Marsh Posté le 09-09-2014 à 13:50:26    

Bonjour,
 
J'aimerais savoir s'il est possible d'appeler l'executable d'un (autre) code à partir d'un fichier de code .cpp.
cad que l'execution du .exe de mon .cpp lance un autre .exe par conséquence.
 
un peu du genre
 

Code :
  1. main{
  2. code
  3. appel à l'executable comme on appelerait une fonction
  4. code
  5. fin
  6. }


 
Merci d'avance !

Reply

Marsh Posté le 09-09-2014 à 13:50:26   

Reply

Marsh Posté le 09-09-2014 à 14:24:17    

ca passera par un appel à ton système d'exploitation.
 
Cherche du côté de la création de processus, tu devrais trouver ton bonheur.
 
Sinon, tu peux aussi dire sur quel OS tu veux faire ca et on pourra t'aider plus précisément.


---------------
last.fm
Reply

Marsh Posté le 09-09-2014 à 17:44:58    

Par contre, il faut faire très gaffe car ce n'est pas simple : les sorties sont uniquement (pour du POSIX) sur du STDOUT/STDERR (ou des pipes mais ça ne change pas grand chose au pb)...
 
Donc sauf si ta "fonction" renvoie un int (et encore, je sais qu'il y a des pbs d'encodage/limites de valeur), il faudra faire du parsing du STDOUT/STDERR pour gérer le retour fonctionnel...
 
Sans parler de la problématique de la gestion des signaux eventuelle pour gérer certaines exceptions...
 

Reply

Marsh Posté le 09-09-2014 à 18:18:46    

dreameddeath a écrit :

Par contre, il faut faire très gaffe car ce n'est pas simple : les sorties sont uniquement (pour du POSIX) sur du STDOUT/STDERR (ou des pipes mais ça ne change pas grand chose au pb)...
 
Donc sauf si ta "fonction" renvoie un int (et encore, je sais qu'il y a des pbs d'encodage/limites de valeur), il faudra faire du parsing du STDOUT/STDERR pour gérer le retour fonctionnel...
 
Sans parler de la problématique de la gestion des signaux eventuelle pour gérer certaines exceptions...
 


 
 
C'est des détails tout ca ...
 
Y'a plein de moyens de dialoguer avec un processus qu'on a créé (socket, shared memory, ...) mais on ne sait même pas s'il est intéressé par ca. Peut-être qu'il veut juste exécuter une commande et continuer son code en parallèle ...


---------------
last.fm
Reply

Marsh Posté le 09-09-2014 à 18:33:19    

Le diable ne se cache-t-il pas dans les détails ? ;)
 
Je voulais juste le sensibiliser à la problématique du "mapping" des entrées/sorties de la fonction "qui appelle" l'exe en fonction des besoins et que ça pouvait être complexe.
 
Mais si c'est juste l'appel d'un exe et le contrôle du code retour, on n'a pas tout ces pbs...


Message édité par dreameddeath le 09-09-2014 à 18:33:46
Reply

Marsh Posté le 11-09-2014 à 11:31:02    

Merci pour vos réponses!
Au fait j'ai simplement utilisé la fonction system et ça a marché ! :)

Reply

Sujets relatifs:

Leave a Replay

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