3.8.48 signaltest.c

3.8.48 signaltest.c

#include <stdio.h>

#include <signal.h>

#include <errno.h>

extern int errno;

main() {

 int с, n;

 char buf[100];

 int onintr();

 signal(SIGINT, onintr);

 for (;;) {

  n = read(0, buf, 100);

  if (n > 0)

   printf(buf);

  else {

   if (errno == EINTR) {

    errno = 0;

    printf("interrupt side %d ", n);

   } else {

    printf("true end of file %d ", n);

   }

  }

 }

}

onintr() {

 signal(SIGINT, onintr);

 printf("interrupt ");

}

Данный текст является ознакомительным фрагментом.