c - 信号处理程序代码是否会阻塞主进程?

标签 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是否遵循像线程一样的单独执行路径,或者它是否会阻塞主进程。

最佳答案

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

关于c - 信号处理程序代码是否会阻塞主进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24375498/

相关文章:

c - 合并多个 .so 共享库

c# - 具有无限循环和 thread.sleep 高 CPU 使用率的多线程

c - sscanf 坏了吗?

python - 使用 python 执行带有输入的 C 程序

c - SIGHUP 信号处理以在 Unix 系统编程中取消命令的操作

excel - Excel 工作表中的独立计时器宏

PHP 倒数计时器

c - c中如何从[0-5] U [8-12]这样的区间生成随机数

c# - GC.KeepAlive 是否清理 OnTimeEvent 变量和类类型?

Python 通过写入 stdin 取消 raw_input/input?