/* FILE: lungpipe.c */ #include #include #include #include int count; void alrm_action(); int main() { int p[2]; char c = 'x'; if (pipe(p) < 0) { printf("Errore\n"); exit (1); } signal(SIGALRM, alrm_action); for (count = 0;;) { alarm(10); /* settiamo l'allarme */ write(p[1], &c, 1); /* scrittura sulla pipe */ alarm(0); /* resettiamo l'allarme */ if ((++count % 1024) == 0) printf ("%d caratteri nella pipe\n", count); } } void alrm_action() { printf ("write bloccata dopo %d caratteri\n", count); exit(0); }