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 :

Trapper les retours d'un processus fils.


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 46
    Points
    46
    Par défaut Trapper les retours d'un processus fils.
    Bonjour,

    Quelle est la bonne fonction à utiliser si je veux trapper les retours d'un processus fils, exemple fin de process, mais pour autant ne pas suspendre l'exécution du process père à l'attente du retour du fils.

    Exemple :

    je me mets en attente de lecture sur une carte via une API.
    Je suis réveillé.
    Je génère un fils pour traiter l'information reçue
    je reviens en attnte de lecture en attendant d'être réveillé par un EVT entrant sur ma carte.
    pour autant je dois trapper les signaux renvoyés par le fils, mais la fonction wait() va suspendre mon process en attente d'un retour de mon process fils créer alors que je veux retourner en lecture de ma carte.

    merci de vos intelligentes réponses

  2. #2
    Membre averti Avatar de Mandraxx
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2011
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 182
    Points : 410
    Points
    410
    Par défaut signal
    Bonjour,

    L'API des signaux (man 2 signal) est ton amie

    Lorsqu'un processus fils se termine, il envoie un SIGCHLD à son père qui peut alors faire un wait dans le handler de signaux pour récupérer l'état de sortie.

    @+
    Le choix motivé par le seul argument de modernité est intrinsèquement dépourvu de créativité.

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 46
    Points
    46
    Par défaut
    Merci de ta réponse mais,
    Je ne veux pas utiliser de fonction suspensive. Hors, même si ça remonte un peu, wait() est une fonction qui se met en attente du retour du fils en suspendant le process courant.
    Je veux pouvoir, ce n'est peut être pas possible, pouvoir réceptionner un signal, quel qu'il soit, venant d'un processus fils, sans pour autant suspendre mon processus père à l'attente d'un retour du fils.

    Je reposte la mécanique souhaitée.

    Je suis en attente de lecture sur un périphérique lambda
    Je suis réveillé
    Je colle l'info dans un segment de mémoire partagé par exemple
    je crée un process fils qui va traiter cette information
    je reviens en attente de lecture sur mon périphérique

    Je ne veux pas être en attente d'un retour du fils, je veux pouvoir trapper un retour du fils tout en retournant en lecture de mon périphérique qui peut me renvoyer des evt que je souhaite traiter en créan un nouveau process fils. Et ainsi de suite.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il me semble que la réponse de Mandraxx réponds à ton besoin.
    Le SIGCHLD est envoyé par le fils vers le père quand le fils se meurt. Du coup, dans le père, si dans le handler du SIGCHLD l'on fait un wait, on aura quasiment directement la valeur de retour du fils retourner, et ce sans temps d'attente.

Discussions similaires

  1. les processus fils et pere
    Par nadine01 dans le forum C
    Réponses: 15
    Dernier message: 03/11/2014, 21h41
  2. Réponses: 3
    Dernier message: 03/02/2011, 18h11
  3. Tuer les processus fils
    Par soony dans le forum Linux
    Réponses: 4
    Dernier message: 12/12/2006, 13h08
  4. Partage d'une variable entre les processus fils
    Par Mehdi Feki dans le forum Linux
    Réponses: 7
    Dernier message: 09/01/2005, 13h34
  5. Conserver les retours à la ligne
    Par arwen dans le forum ASP
    Réponses: 2
    Dernier message: 04/12/2003, 12h50

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