IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

lancer un programme externe et continuer


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 113
    Points : 41
    Points
    41
    Par défaut lancer un programme externe et continuer
    Salut,


    Je cherche à lancer un programme externe, mais je ne veux pas attendre qu'il se termine. Actuellement je fait un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("perl monprog.pl");
    En fait ce script doit rester actif pendent l'execution de mon prog C++.
    Pas moyen de trouver des infos sur le web.

    Quelqun pour m'aider ?

    Merci :-)

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut idem
    Si tu lances une commande system (comme toute autre commande), le prog attendra la fin de la commande pour reprendre la main donc ce n'est pas ça qu'il faut utiliser.
    Le seul moyen de faire deux exécutions indépendantes (avec un déclencheur) est de passer par 2 thread car un même process attend toujours la fin de la dernière ligne de commande. Sans ça, ce serait indébugable et on n'aurait plus du tout la notion de séquence.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 113
    Points : 41
    Points
    41
    Par défaut
    Ok, je vais jetter un oeil à la commande exec()

    Merchi :-)

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    là, exec() ne te servira à rien sans un fork() avant (unioïde seulement).

    Par contre, les commandes spawnxx (spawnl, spawnlp, spawnle, etc.) devraient t'être utiles. (seulement, j'ignore si elles ont un équivalent sous unixoïde...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 113
    Points : 41
    Points
    41
    Par défaut
    Donc au final je vais me retrouver avec 3 process ?

    Le premier celui de mon prog C++
    Le second son fork
    Et le 3 ieme mon prog perl !

    On est obligé ?

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Normalement, 2 process (fork/exec ou spawn) ou 3 process dont un en attente (fork/system).

    Franchement, s'il faut utiliser fork(), je conseillerais le dernier (fork et system) car pour le fils, je trouve qu'un system() vaut mieux qu'un exec() (mais c'est une opinion personnelle, qui ne s'appuie pas sur la logique)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancer un programme externe
    Par jagwar dans le forum Smalltalk
    Réponses: 2
    Dernier message: 30/01/2011, 21h32
  2. Réponses: 1
    Dernier message: 15/05/2008, 14h29
  3. Réponses: 5
    Dernier message: 17/03/2008, 11h51
  4. [Système] Lancer un programme externe
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2007, 07h56
  5. [Système] Lancer un programme externe depuis une page web
    Par needles94000 dans le forum Langage
    Réponses: 2
    Dernier message: 08/02/2006, 21h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo