home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / GianuzziV / SO1 / signal1.c < prev    next >
Text File  |  2005-01-31  |  632b  |  31 lines

  1. #define SIGN 020
  2. /* File signal1.c  */
  3. /* prova signal */
  4.  
  5. int  status, num=0, pp;
  6. void  intr(numsig)
  7. int numsig;
  8.       { printf("ricevuto %o \n", numsig);
  9.         signal (SIGN, intr);
  10.         num++;
  11.         }
  12. main ()
  13. {  int  pid;
  14.    pid = getpid();
  15.    signal (SIGN, intr);
  16.    if ((pp=fork()) < 0) {perror("errore"); exit();}
  17.    if (pp == 0)
  18.      { kill(pid, SIGN); /* attenzione invertito su Minix */
  19.        sleep(2);
  20.        kill(pid, SIGN);
  21.        exit(1);   }
  22.     /* padre */
  23.     else {
  24.       while (num != 2) ;
  25.       wait(&status);
  26.       printf("numero interruzioni %d   stato figlio %x \n", num, status);
  27.       exit(0);
  28.   }
  29. }
  30.  
  31.