Comment envoyer un signal du pere au fils pour faire un traitement

Signaler
Messages postés
33
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
15 novembre 2007
-
Messages postés
33
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
15 novembre 2007
-
Bonjour,
je voudrai faire un programme qui crée un processus fils qui affiche un message quand il reçoit le
signal SIGUSR1 du processus père.
merci

2 réponses

Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
Je suppose que tu as fait un fork.

Dans ce cas:

// Dans le pere
pid_t pid=fork();
kill(pid, SIGUSR1);

// Dans le fils
je sais plus exactement, mais jete un oeil du coté des fonctions signal et wait/waitpid

TuRn3r
Messages postés
33
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
15 novembre 2007

voici la portion du code :

while (1)
{
 // je teste s'il ya une socket ki c connécté
  nsd = accept(sd, , );
 // si c le cas j'incremente nb
  nb++
 // j'ecri dan le tube la valeur de nb
 close(tube[0]);
  write(tube[1],&nb,sizeof(int));
 
// si nb = 1 je crée un fils
if(nb = = 1)
pid = fork();
if (pid = = 0)
{
  // code du fils
// je doi executer le code 1 si seulement nb a été modifée dan le pere
 //code 1
  {
     // lire ce k'il ya dan le tube
    close(tube[1]);
     read(tube[0],&nb,sizeof(int);
   }
//code 2
{
  // autre traitement
}

}

} // fin du while

coment faire pour executer le code 1 seulement si le pere a incrementer le nb (avec les signaux et tube) ?
merci