/* * Exemplo no qual o tratador de sinal modifica * o valor de errno. */ #include #include #include #include void trata_SIGALRM(int signum) { FILE* f = fopen ("noperm.txt","w"); /* if (f == NULL) perror("fopen noperm.txt"); */ } int main() { FILE *file; signal(SIGALRM, trata_SIGALRM); file = fopen ("noarq.txt","r"); if (file == NULL) perror("fopen noarq.txt"); raise(SIGALRM); /* Envia um sinal para o prĂ³prio processo */ if (file == NULL) perror("fopen noarq.txt"); return 0; }