#include <stdio.h>
#include <signal.h>

int filsdepute;
int compteur=0;

void catch_sigint(int sig){
        if(sig==SIGUSR1){
                compteur++;
        }
	if(sig==SIGINT){
	        printf("%d\n",compteur);
		kill(filsdepute, SIGKILL);	
	}
}

int main(){
	struct sigaction action;

	filsdepute = fork();		//fait un nonassoc sur le socket
	switch (filsdepute){
		case(-1) : perror("erreur\n"); break;
		case(0) : 
			action.sa_handler=catch_sigint;
			sigaction(SIGUSR1, &action, NULL); 
			sigaction(SIGINT, &action, NULL); 
			int i;
			for(i=0; i< 1000000 ; i++)
				kill(filsdepute, SIGUSR1);
			kill(filsdepute, SIGINT);
			break;
		default : break;
	}
	return 0;
}

