Executer plusieurs programmes à la suite C++
Discutez d'informatique ici !
-
coqp-ox
- Membre Naturel
- Messages: 52
- Enregistré le: 22 Nov 2013, 09:00
-
par coqp-ox » 03 Jan 2014, 11:02
Bonjour, bonjour !
Aujourd'hui pas de question compliquée qui parle de maths et de programmation, juste un petit problème qui, je pense, est assez facile à résoudre.
En fait, j'ai écrit 3 programmes en C++ que je dois exécuter à la suite pour obtenir un résultat unique (par exemple, calcul.exe -> transformation.exe -> ecriretxt.exe). Vous vous doutez bien que lancer à chaque fois 3 programmes pour obtenir un résultat n'est pas la solution la plus optimale.
Donc j'aurais voulu savoir s'il était possible de réaliser un programme qui exécute les 3 à la suite.
Voila, merci d'avance de votre réponse et bonne journée ! :ptdr:
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 03 Jan 2014, 11:08
Bonjour,
Pourquoi ne pas écrire un petit script pour lancer automatiquement tes 3 programmes ?
Autre solution pourquoi ne pas écrire une fonction effectuant le traitement du programme 1, le traitement du programme 2 et le traitement du programme 3 et d'appeler ces 3 fonctions dans un même programme par exemple.
-
Rockleader
- Habitué(e)
- Messages: 2126
- Enregistré le: 11 Oct 2011, 18:42
-
par Rockleader » 03 Jan 2014, 11:47
Etant donné qu'écrire un script ce serait dépendre de l'OS; je pencherais pour la seconde solution évoqué par ampholyte.
Plutôt que de faire 3 programmes différents, fais trois sous-programmes (fonctions ou procédures en fonction de leurs roles) dans un seul programme !
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !
-
coqp-ox
- Membre Naturel
- Messages: 52
- Enregistré le: 22 Nov 2013, 09:00
-
par coqp-ox » 03 Jan 2014, 15:04
Bon je pense avoir plus ou moins (comme toujours) compris le concept :mur:
Je me suis renseigné vite fait sur internet et j'ai trouvé cette commande :
- Code: Tout sélectionner
char file[]="prog.exe";
if (system(file))
cout << "Lancement du fichier : "<< file << endl;
else cout << "Erreur de lancement du fichier : "<< file;
Je la "copie" 3 fois avec file1/2/3, le programme compile et la :
'Prog1.exe' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
Lancement du fichier : Prog1.exe
'Prog2.exe' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
Lancement du fichier : Prog2.exe
'Prog3.exe' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
Lancement du fichier : Prog3.exe
:doh:
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 03 Jan 2014, 15:15
Est-ce que tu es bien dans le bon répertoire contenant les 3 .exe ?
@Rockleader : En même temps un .exe n'est pas utilisable partout ^^.
-
Rockleader
- Habitué(e)
- Messages: 2126
- Enregistré le: 11 Oct 2011, 18:42
-
par Rockleader » 03 Jan 2014, 15:57
@Rockleader : En même temps un .exe n'est pas utilisable partout ^^.
Certes; ce que je voulais dire par là faisait référence au code source qui lui peut être compilé sur tous les systèmes à priori; ce serait quand même inquiétant qu'un code compilé et exécuté sous linux ne se lance pas sous windows; alors que le contraire ne me surprendrait pas du tout x) Mais je m'égare =)
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !
-
coqp-ox
- Membre Naturel
- Messages: 52
- Enregistré le: 22 Nov 2013, 09:00
-
par coqp-ox » 03 Jan 2014, 16:02
ampholyte a écrit:Est-ce que tu es bien dans le bon répertoire contenant les 3 .exe ?
@Rockleader : En même temps un .exe n'est pas utilisable partout ^^.
Autant pour moi, j'avais copier/coller dans le bon répertoire mais il s'était quand meme enregistré sur mon bureau, merci beaucoup ! :id:
EDIT : En fait j'ai un nouveau problème, j'ai modifié quelques trucs dans mes programmes et il se trouve que maintenant quand je compile le programme qui les appelle il me dit ca :
prog1.exe' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
Lancement du fichier : prog1.exe
'prog2.exe' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
Lancement du fichier : prog2.exe
'prog3.exe' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
Lancement du fichier : prog3.exe
Process returned 0 (0x0) execution time : 0.484 s
Press any key to continue.
Est-ce que ca peut venir du fait que mes trois programmes ne doivent rien afficher sur l'invité de commande ?
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 03 Jan 2014, 16:22
Rockleader a écrit:Certes; ce que je voulais dire par là faisait référence au code source qui lui peut être compilé sur tous les systèmes à priori; ce serait quand même inquiétant qu'un code compilé et exécuté sous linux ne se lance pas sous windows; alors que le contraire ne me surprendrait pas du tout x) Mais je m'égare =)
Pourtant c'est le cas, par exemple n'existe pas par défaut sur linux. Donc un programme contenant cette lib ne fonctionnerait pas forcément sous linux.
Ba la le problème c'est que tes 3 programmes ne sont pas executés. Essaye de rentrer les chemins en absolu (C:/Utilisateurs/.../test1)
-
Rockleader
- Habitué(e)
- Messages: 2126
- Enregistré le: 11 Oct 2011, 18:42
-
par Rockleader » 03 Jan 2014, 16:28
Pourtant c'est le cas, par exemple n'existe pas par défaut sur linux. Donc un programme contenant cette lib ne fonctionnerait pas forcément sous linux.
C'est bien ce que je voulais dire par cette phrase

alors que le contraire ne me surprendrait pas du tout
Enfin bref, je connais rien du C++ mais je pense quand même qu'il aurait été plus logique de faire trois sous programmes

Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 03 Jan 2014, 16:51
Rockleader a écrit:C'est bien ce que je voulais dire par cette phrase

Enfin bref, je connais rien du C++ mais je pense quand même qu'il aurait été plus logique de faire trois sous programmes

Je dirais même plus faire 3 fonctions (découpé chacune en sous-fonctions suivant ce qui est fait) =).
-
joel76
- Membre Relatif
- Messages: 230
- Enregistré le: 11 Fév 2013, 15:31
-
par joel76 » 03 Jan 2014, 22:29
pourquoi ne pas faire un .bat sous windows ??? Ça ne marcherait pas ?
- Code: Tout sélectionner
\prog1.exe
\prog2.exe
\prog3.exe
On doit faire exactement l'équivalent sous Linux avec des .sh je pense.
C'est vraiment se compliquer la vie que d'écrire un prog en C++ pour ça.
[EDIT] C'est exactement la solution préconisée par Ampholyte dans son premier post, d'ailleurs :ptdr:
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités