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" ) ;
}
      • 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

  1. 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); }
    0
    1. Contributeur Ambassadeur
      à quoi correspond
      fct
      ?
      as-tu essayé
      SIG_IGN
      ?
      0
    2. @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
      0
  2. Contributeur Ambassadeur
    bonjour, connais-tu la fonction signal()?
    0