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 :

avertir/notifier un processus parent que c'est prêt


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 49
    Par défaut avertir/notifier un processus parent que c'est prêt
    bonjour,

    Dans un programme c sous linux, je cherche désespérément comment faire pour avertir/notifier un processus parent que c'est bon, çà y est c'est fait.

    J'ai essayé de le faire avec signal() ou même sigaction() qui fonctionne bien mais ne correspond pas à mon besoin, car le signal_handler ne peut accéder aux variables du main et ne prend pas de paramètre.
    J'ai essayer de déclarer ces variables en volatile mais comme il s'agit d'un tableau allouée selon un paramètre renseigné par l'utilisateur, et remplie dans un processus fils, eh bien cette variable n'est pas constante donc pas de volatile et je suis bloqué

    j'espère avoir été claire dans mon explication, sinon n'hésitez pas.

    auriez vous une indication svp ?

  2. #2
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    En général, c'est une mauvaise idée d'utiliser les signaux pour faire de la communication inter-processus « intérieure ». Tu as l'embarras du choix en ce qui concerne les alternatives, elles sont listées sur Wikipédia : https://en.wikipedia.org/wiki/Inter-...ion#Approaches .

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 49
    Par défaut
    merci pour ces informations mais je suis dans le cadre d'un projet pour mes études, et je dois envoyer un signal SIGUSR1 et transmettre également des informations par les tubes/pipes.

    Je pense devoir utiliser une fonction d'envoie de signaux comme signal() ou sigaction() pour envoyer SIGUSR1 et je pense ne pas avoir le droit de pallier cette transmission de signal par un tube.

    Je me retrouve bloquer pour faire communiquer le père vers ses fils dans ma fonction signal_handler. car après avoir reçu le signal dans ma fonction signal_handler, je ne peut pas accéder à ma variable[] contenant les pids des fils. C'est pourquoi je cherche une fonction (utilisable dans le signal_handler) qui me permettrait de notifier le père dans le main afin qu'il joigne ses fils .

    C'est une horreur la façon dont je l'explique ... suis vraiment désolé

  4. #4
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Alors tu as simplement à lever un drapeau dans le handler pour indiquer qu'un signal a été reçu et stocker le pid de l'émetteur. La séquence principale du processus père n'a plus qu'à interroger régulièrement ce drapeau. La difficulté est de correctement ordonnancer les accès aux variables qui sont susceptibles d'être modifiées dans le handler.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 49
    Par défaut
    merci j'ai trouvé mon bonheur avec sig_atomic_t et comme tu l'as dit je dois maintenant ordonnancer. merci encore

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

Discussions similaires

  1. Qu'est ce que c'est qu'un Trigger ?
    Par shingo dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/10/2003, 22h09
  2. Un daemon qu'est ce que c'est exactement ?
    Par CedricYhuel dans le forum Administration système
    Réponses: 5
    Dernier message: 01/08/2003, 11h56
  3. Qu'est ce que c'est : Le GateA20 ?
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 24/02/2003, 15h09
  4. Qu'est-ce que c'est que Nessus, ça fait quoi exactement ?
    Par PeterT dans le forum Développement
    Réponses: 3
    Dernier message: 24/07/2002, 11h23

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