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

cs_facilus Messages postés 33 Date d'inscription lundi 19 juin 2006 Statut Membre Dernière intervention 15 novembre 2007 - 13 déc. 2006 à 10:06
cs_facilus Messages postés 33 Date d'inscription lundi 19 juin 2006 Statut Membre Dernière intervention 15 novembre 2007 - 13 déc. 2006 à 11:22
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

turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
13 déc. 2006 à 10:42
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
0
cs_facilus Messages postés 33 Date d'inscription lundi 19 juin 2006 Statut Membre Dernière intervention 15 novembre 2007
13 déc. 2006 à 11:22
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
0
Rejoignez-nous