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

Linux Discussion :

Lancer l'exécution d'un autre programme


Sujet :

Linux

  1. #1
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut Lancer l'exécution d'un autre programme
    Bonjour,

    Voilà, je commence doucement la programmation sous linux (depuis une semaine) et je dois dire que je m'y perd un peu, étant fortement habitué à l'API win32...

    Je souhaite réaliser un front-end (réalisé en C avec gtk+) d'un programme s'exécutant normalement sous un Terminal.

    Ma question est en faite multi-partie :

    1) Comment lancer ce programme (qui s'exécute donc sous un terminal habituellement) à partir de mon front-end de manière totalement silencieuse ?

    2) Comment récupérer la sortie de ce programme dans mon front-end ?

    Pour faire un comparaison avec l'API win32, il me faudrait une sorte de ShellExecute (à priori je n'ai pas besoin de récuperer d'information sur le processus en lui-même tel que son PID ou son SUID) et ensuite un faire un Pipe pour envoyer la sortie à mon programme en GUI.

    J'ai cherché dans les pages de MAN en ce qui concerne ma première question, mais je n'ai trouvé que les commandes de type exec(...) [type 'execl' ou 'execve', etc.] mais cela ne semble pas convenir, ni 'fork' qui semble trop complexe pour cela...
    En ce qui concerne la deuxième partie, j'ignore ce qu'il conviendrait de faire.

    En théorie, la solution de rediriger la sortie vers un fichier est à exclure puisque qu'il est possible que j'ai à interroger le programme plusieurs fois par seconde, ce qui de mon point de vue serait inefficient comme solution.

    En vous remerciant.

  2. #2
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    salut,
    je ne suis pas expert en gtk mais va voir du coté de xcdroast par exemple. c'est un des nombreux frontends pour cdrecord. il récupère la log de cdrecord et l'envoie dans une boîte de dialogue. je pense que tu peux trouver ton bonheur dans les sources

  3. #3
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    fork et exec sont bien des voies a prendre

    Citation Envoyé par man fork
    NAME
    fork -- create a new process
    Citation Envoyé par man 3 exec
    NAME
    execl, execlp, execle, exect, execv, execvp, execvP -- execute a file
    Citation Envoyé par man 2 pipe
    This allows
    the output of one program to be sent to another program: the source's
    standard output is set up to be the write end of the pipe, and the sink's
    standard input is set up to be the read end of the pipe.
    Faut egalement reagdrer du cote de popen...

    Bon developpement

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  4. #4
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Merci à tout deux pour vos réponses.

    Le_Coyote, je jette un coup d'oeil à xcdroast dès ce soir (merci l'open source ) pour voir comment le programme procède.

    Sortex, merci pour les recommandations, je pense que je devrais pouvoir finir mon programme tranquillement à partir de maintenant.

    Merci d'avoir pris le temps de me répondre !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/08/2006, 16h32
  2. Lancer un raccourci.lnk avec Start ou autre
    Par Lorponos dans le forum Windows
    Réponses: 4
    Dernier message: 24/07/2006, 21h20
  3. [winform] lancer un form a partir d'une autre
    Par mahboub dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/03/2006, 17h08
  4. lancer un application de type nero ou autre...
    Par doudou1 dans le forum VBScript
    Réponses: 1
    Dernier message: 30/12/2005, 18h46
  5. Lancer une commande isql à partir d'un autre poste
    Par doudou10000 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/10/2005, 15h43

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