Signaux de base

Signaler
Messages postés
105
Date d'inscription
samedi 25 janvier 2003
Statut
Membre
Dernière intervention
13 décembre 2008
-
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
Bonjour à tous.
Je débute en signaux et j'aimerais faire un simple programme qui crée un fils avec un bon vieux fork, avec ds le code du fils une attente de qq secondes et le pere qui affiche un message des que son fils est mort mais je vois pas trop comment faire.
En gros ça va donner ça

p=fork();
if(p<0) {perror("erreur fork"); exit(1); }
if(p==0) { sleep(5); exit(0) }
if( LE_FILS_EST_IL_MORT() ) printf("Le fils est mort");

mais bon la fonction LE_FILS_EST_IL_MORT() n'existe pas :)
...

3 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Sqlut
Si si, la fonction" attendre que mon fils meurt" existe, c'est    wait(&rv);
En argument ce sera le code retour que le fils envoie: Si le fils fait un exit(10), dans rv il y aura 10

A+
Mon site internet : http://pistol.petesampras.free.fr
Messages postés
105
Date d'inscription
samedi 25 janvier 2003
Statut
Membre
Dernière intervention
13 décembre 2008

Ouep merci beaucoup pour cette réponse mais j'ai une petite question en +

Par exemple je veux créer deux fils en meme temps (enfin deux fork a la suite) avec le premier qui attend 5 secondes et qui fait un exit(0) et le second qui attend 2 secondes et qui fait un exit(0).
Est ce que par exemple je peux faire un code dans le pere qui attendrait que les 2 fils soit terminé pour quitter, parce que si je fais un wait(0) il va juste prendre en compte le signal du fils 1
...
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Oui tu peux le faire, il suffit de mettre autant de wait que de processus a attendre.

A+
Mon site internet : http://pistol.petesampras.free.fr