/* * Exemplo para ilustrar que um tratador de sinais * pode encontrar dados inconsistenes. */ #include #include #include typedef struct { int a, b, c, d;} Varios_ints; Varios_ints zeros = { 0, 0, 0, 0}; Varios_ints uns = { 1, 1, 1, 1}; Varios_ints varios_ints; void trata_SIGALRM(int signum) { printf ("Varios inteiros: %d,%d,%d,%d ******** \n", varios_ints.a, varios_ints.b, varios_ints.c, varios_ints.d); alarm (1); } int main (void) { signal (SIGALRM, trata_SIGALRM); alarm (1); while (1) { varios_ints = zeros; varios_ints = uns; } }