bonjour tout le monde,

j'ai vraiment un petit problème ... je sais pas c'est peut être la fatigue ou quoi mais bon

voilà donc je crée un fils qui veut envoyer un signal à son père qui doit l'intercepter ... mais celà ne fonctionne pas .. et lorsque j'affiche les pid des pere et fils il me semble que le pid du fils devrait être nul mais c pas le cas c bizarre

si vous pouviez m'éclairer ce serait cool . voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
 
 
 
 
void recoit()
{
	printf(":: pere :: signal reçu\n") ;
}
 
 
int main()
{
	int fils;
 
	if ((fils=fork())==-1)
	perror("erreur création fils") ;
	int pere =getpid() ;
 
	if (fils == 0)
	{
		//fils
		printf("fils %d\n", getpid() ) ;
 
 
		kill(pere, SIGUSR1) ;
 
 
 
		exit(0) ;
	}
	else
	{
		//père
		printf("père %d\n", getpid()) ;
		struct sigaction sa ;
		sigemptyset(&sa.sa_mask) ;
		sa.sa_handler = recoit ;
		sa.sa_flags = 0 ;
 
		while(1)
		{
			sigaction(SIGUSR1, &sa, NULL) ;	
		}	
		exit(0) ;
	}
 
}