我正在按如下方式注册报警信号处理程序,并且每秒都会设置一个报警信号。
sigact.sa_handler = time_handler;
sigemptyset(&sigact.sa_mask);
sigact.sa_flags = SA_RESTART;
if (sigaction(SIGALRM, &sigact, NULL) < 0)
panic("sigaction SIGALRM: %s\n", strerror(errno));
/* Set alarm signal every second */
alarm(1);
我的问题是函数time_handler
是否遵循一个单独的执行路径,如线程,还是阻塞主进程。
答案 0 :(得分:0)
您可以通过在回调中添加sleep()调用来查看您是否正在使用GNU C,并查看之后的代码是否被延迟。