PID emetteur d'un signal - C - Programmation
Marsh Posté le 24-02-2005 à 12:48:55
c'est un peu le bordel, il faut utiliser sigaction()
http://www.scit.wlv.ac.uk/cgi-bin/mansec?2+sigaction
avec SA_SIGINFO à vrai et alors tu recevra toute l'info que tu veux dans ton handler.
Marsh Posté le 24-02-2005 à 12:53:11
Il faut que tu utilises la structure siginfo_t.
Voici un exemple de handler :
Code :
|
Je complète avec l'armement :
Code :
|
Marsh Posté le 28-02-2005 à 12:14:42
Hello nraynaud et Master_Jul
merci pour vos reponses.
Je n'ai pas encore eu la disponibilite pour faire les essais, mais en tout cas merci.
Lsts Titof13
Marsh Posté le 04-03-2005 à 08:26:44
Bonjur
J'arrive un peu en retard, mais j ai peut etre une idee. J'ai deja fait ce genre de chose, le principe c est que dans le pere tu prends ton pid via getpid() dans une variable int, et tu envoyes tes 32 octets de ton int en premier a ton fils avec sigusr1 pour 0 et sigusr2 pour 0. La grace a un systeme de decalage de bit tu peux donc envoyer le pid du pere a son fils. Ce fils retrouvera le int de depart grace egalement a un decalage de bits. Ainsi tu auras le PID du pere.
Le mieux encore par la suite est de conclure chaque envoye de signal du pere vers le fils par un petit signal dans l autre sens (fils -> pere) afin qu'il sache ce qu'il recoit. Ainsi tu es sur de la bonne reception de tes sigaux par le fils
Marsh Posté le 04-03-2005 à 13:01:57
Salut
creusois a écrit : Bonjur |
Po grave, le principal c'est de participer...
J'ai deja mis en oeuvre une solution voisine de la tienne.
Cependant mon souhait etait d'employer sigaction qui, je ne sais comment encore, remplie une structure de type siginfo_t.
Mon probleme c'est que je ne sais pas comment aller les infos de cette structure.
A quel endroit je dois declarer le pointeur qui contiendra l'adresse de cette strcuture....
Il faut dire que ces derniers jours, j'ai eu du boulot par-dessus la tete et que je n'ai pas encore eu le temps de m'y replonger..
Un jour viendra ....
Merci encore pour ta reponse.
A bientot
Marsh Posté le 05-03-2005 à 13:08:23
Master_Jul a écrit : Je t'ai tout donné tout ce qu'il te faut hein. |
lut Master...
Vi vi je sais et j'ai meme tout imprime mais po le temps en ce moment.
Entre le boulot, l'ecole et tout et tout c'est des journees de 48 h qu'il me faudrait.
Bye et merci encore man
Marsh Posté le 24-02-2005 à 12:36:57
Bonjour a toutes et a tous
Je me pose une question meta physique en prog.
Contexte : Systeme expliotation UNIX, language C
J'aimerai savoir s'il y a moyen de connaitre le PID de l'emmeteur d'un
signal. Je m'explique :
Dans un programme je fais un fork et un execv.
Le processus fils fait sa vie tranquillement le pere refait un fork donc
maintenant 1 pere et deux fils sont dans la machine :-) ( ca commence a
faire du monde :-)) )
Le pere recoit le signal SIGUSR1 de la part d'un fils.
Suivant le fils, il va enclancher telle ou telle action.
COmment le pere peut il detecter le PID du fils emmeteur ?
Si une personne sait comment faire, je suis preneur
par avance merci