信号处理程序代码阻止主进程吗?

时间:2014-06-23 22:19:18

标签: c timer

我正在按如下方式注册报警信号处理程序,并且每秒都会设置一个报警信号。

  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是否遵循一个单独的执行路径,如线程,还是阻塞主进程。

1 个答案:

答案 0 :(得分:0)

您可以通过在回调中添加sleep()调用来查看您是否正在使用GNU C,并查看之后的代码是否被延迟。