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

EDI Delphi Discussion :

[Kylix] Libc system


Sujet :

EDI Delphi

  1. #1
    Membre régulier Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Points : 77
    Points
    77
    Par défaut [Kylix] Libc system
    Bonjour,
    je sais que le sujet a déjà été abordé, mais je n'arrive pas à trouver une réponse claire et nette à cette question.
    Lorsqu'un programme est lancé via un autre programme par la méthode libc.system(), est-ce que le programme "lanceur" attend le retour du programme lancé ? Si oui, comment faire pour lancer un programme sans attendre son retour ?
    Merci.
    C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("prog_à_lancer &");
    Sinon, voir les fonctions exec.
    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre régulier Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Points : 77
    Points
    77
    Par défaut
    Merci pour ta réponse,
    je vais creuser un peu plus ces fonctions et faire quelques tests. Un simple sleep dans la deuxième apli me permettra de savoir si l'appli "lanceuse" attend le retour de l'appli "lancée".

    Je reviendrai donner le résultat dans ce post.
    C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)

  4. #4
    Membre régulier Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Points : 77
    Points
    77
    Par défaut
    Bon je plante le décors

    Je développe un CGI (stand-alone).
    Celui-ci reçoit une trame XML et en renvoie une.
    Dans ce programme j'appelle un autre programme (pour l'instant il ecrit simplement dans un fichier 'toto').
    Donc tout naturellement :
    Libc.system('monprogram &');

    Seulement voilà, dans mes logs tout se déroule correctement, mais pas pour le client qui recoit une erreur 500 du serveur, et le fichier toto n'est pas créé !!!

    si j'execute ce CGI dans un shell (ce qui n'a pas de sens), le retour du cgi s'affiche bien (stdout), et le fichier 'toto' est créé avec son contenu (un mot).

    J'ai alors tenté :
    Libc.system('monprogram > /dev/null &');

    Cette fois le retour du cgi est bon, mais pas de fichier 'toto", rien, niet ...
    En executant dans le shell le cgi, ça fonctionne à nouveau.

    Je suis devant un gros problème urgentissime (mais ça, ça ne concerne que moi)

    A ce stade , toutes les idées sont les bien venues
    C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Yep !

    Dans ma première réponse, j'avais mis des doubles quotes pour encadrer la chaîne dans les parenthèses. Toi tu mets des simples quotes...
    Erreur de recopie ici ?
    Voir Programmation Linux chez Eyrolles, 2e tirage 2001, p. 374
    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre régulier Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Points : 77
    Points
    77
    Par défaut
    non, non c'est bien des simple quotes que j'ai mis, et cela ne semble pas poser de problème lorsque j'execute le cgi dans le shell
    C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)

  7. #7
    Membre régulier Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Points : 77
    Points
    77
    Par défaut
    heu ... demain je me précipite chez un libraire
    C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)

  8. #8
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Citation Envoyé par Nillak Voir le message
    heu ... demain je me précipite chez un libraire
    Sauramps !
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. [Kylix] pb avec le Libc.system sous redhat
    Par zheng dans le forum EDI
    Réponses: 1
    Dernier message: 15/07/2004, 10h58
  2. [Kylix] PB Utilisation libc.system
    Par Louargant Bertrand dans le forum EDI
    Réponses: 1
    Dernier message: 19/06/2003, 18h36
  3. [Kylix] PIOFILE ,libc.system....??
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 06/12/2002, 22h34
  4. Réponses: 7
    Dernier message: 29/10/2002, 10h51
  5. [Kylix] libc.system
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 19/10/2002, 13h48

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