/* * Incrementa um contador por um segundo. */ #include #include #include #include /* Flag para controlar permanĂȘncia no loop principal. */ volatile sig_atomic_t incrementa; /* Apenas limpa o flag. É preciso re-instalar o tratador? */ void trata_SIGALRM (int sig) { incrementa = 0; } int main (void) { int c; signal (SIGALRM, trata_SIGALRM); c = 0; incrementa = 1; alarm (1); while (incrementa) c++; printf("Valor do contador: %x\n", c); return 0; }