#include #include int i, j; long T0; jmp_buf Env; void alarm_handler(int dummy) { long t1; t1 = time(0) - T0; printf("Прошло секунд: %d, j = %d. i = %d\n", t1, (t1 == 1) ? "" : "s", j, i); if (t1 >= 8) { printf("Вызов longjmp\n"); longjmp(Env, 1); } alarm(1); } main() { signal(SIGALRM, alarm_handler); alarm(1); if (setjmp(Env) != 0) { printf("Завершение работы: j = %d, i = %d\n", j, i); exit(1); } T0 = time(0); for (j = 0; j < 10000; j++) { for (i = 0; i < 1000000; i++); } }