/* * Programa um alarme e fica esperando o usuário teclar enter. * Dentro do tratador, novo alarme é programado e o tratador * padrão é restabelecido. */ #include #include #include void trata_SIGALRM2(int signum) { printf("Queria mais tempo...\n"); signal(SIGALRM, SIG_DFL); raise(SIGALRM); } void trata_SIGALRM(int signum) { printf("Primeiro alarme é tratado pela função trata_SIGALRM().\n"); printf("Segundo alarme irá interromper o programa.\n"); signal(SIGALRM, SIG_DFL); alarm(1); } int main (void) { char c; signal(SIGALRM, trata_SIGALRM); alarm (1); printf("Tecle enter para terminar: "); scanf("%c", &c); return 0; }