Programmation System linux en c (les singaux )

chaima -  
 chaima -
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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, connais-tu la fonction signal()?
    0
  2. chaimamalika008@gmail.com
     
    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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      à quoi correspond
      fct
      ?
      as-tu essayé
      SIG_IGN
      ?
      0
      1. chaima > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        fct 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