跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Linux 系统编程中, 如果信号处理函数里面写一个死循环 会怎么样?
未分類
13 2 月 2021

Linux 系统编程中, 如果信号处理函数里面写一个死循环 会怎么样?

Linux 系统编程中, 如果信号处理函数里面写一个死循环 会怎么样?

資深大佬 : chaleaoch 2

对于内核来说, 信号处理函数就是一个进程吗?
如果死循环, 那这个进程(这里是指主进程), 是不是就无法再次相应这个信号了?
大佬有話說 (4)

  • 資深大佬 : codehz

    所以这就是为啥有不可以安装 handler 函数的信号

  • 資深大佬 : YouLMAO

    kill -9 啪,爬爬爬

  • 資深大佬 : ryd994

    这个问题和 SIGKILL 能否被捕获无关,而是 signal handler 是否有重入的问题。
    答案是可以有重入:
    https://man7.org/linux/man-pages/man7/signal-safety.7.html#:~:text=In%20general%2C%20a%20function%20is,%2Dsignal%2Dsafe%20by%20POSIX.

    https://wiki.sei.cmu.edu/confluence/display/c/SIG00-C.+Mask+signals+handled+by+noninterruptible+signal+handlers#:~:text=Signal%20handlers%20can%20be%20interrupted,is%20async%2Dsignal%2Dsafe.

    除非系统有专门实现自动关闭对应 signal 的功能

  • 資深大佬 : julyclyde

    显然不是一个进程啊
    进程之间是有内存隔离的,如果信号处理函数单独一个进程,就基本上没法对原进程做什么有效的事了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具