Executer plusieurs programmes à la suite C++

Discutez d'informatique ici !
coqp-ox
Membre Naturel
Messages: 52
Enregistré le: 22 Nov 2013, 09:00

Executer plusieurs programmes à la suite C++

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:



Avatar de l’utilisateur
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.

Avatar de l’utilisateur
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:

Avatar de l’utilisateur
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 ^^.

Avatar de l’utilisateur
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 ?

Avatar de l’utilisateur
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)

Avatar de l’utilisateur
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 !

Avatar de l’utilisateur
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:

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite