sigalarm
act.sa_handler = sigalarm;
act.sa_handler = sigalarm;
.sa_handler = sigalarm,
.sa_handler = sigalarm,
struct sigaction sigalarm;
sigalarm.sa_handler = (sig_t) sigalarm_handler;
sigemptyset(&sigalarm.sa_mask);
sigalarm.sa_flags = SA_RESETHAND; /* should only happen once */
sigalarm.sa_flags |= SA_RESTART;
if (sigaction(SIGALRM, &sigalarm, NULL) != 0) {