Programmation System linux en c (les singaux )
bonjour a tous .
j'ai une question pour les signaux en c .
comment bloquer un signale pour processus et débloquer pour outre en même programme
par exemple j'ai le programme :
void main()
{
printf( " début le processus père pid : "+getpid() )
x=fork(){
prinf( " ici le processus fils : " ) ; exit() ; }
wait(0) ;
printf ("fin processus père" ) ;
}
merci en tout les case .
j'ai une question pour les signaux en c .
comment bloquer un signale pour processus et débloquer pour outre en même programme
par exemple j'ai le programme :
void main()
{
printf( " début le processus père pid : "+getpid() )
x=fork(){
prinf( " ici le processus fils : " ) ; exit() ; }
wait(0) ;
printf ("fin processus père" ) ;
}
- comment faire pour bloquer le signale ctrl+z pour le processus père et active pour le processus fils
merci en tout les case .
2 réponses
-
Contributeur Ambassadeurbonjour, connais-tu la fonction signal()?
-
oui je connais
j'ai essaye ce code mais ça marche pas , il toujours faire soit le handler de son père ou bien bloquer .
void main ()
{
signal(SIGTSTP, fct) ;
int x = fork() ;
if (x==0)
{
signal(SIGTSTP,SIG_DFL) ;
printf("debut de fils \n " );
pause () ;
printf("fin de fils ");
}
wait(0); }-
-
@yg_befct c'est le handler pour ctrl+c dans processus père juste une affichage .
void fct ( int signale )
{ printf("ici le 1 handler pour ctrl+c "); }
oui j'ai essaye SIG_IGN ca marche pas aussi soit bloquer tous le programme soit affiche le handler pour son père .
merci en tous les case
-