gpt4 book ai didi

c - 如何检查进程是否忽略或处理信号?

转载 作者:行者123 更新时间:2023-12-02 09:38:19 24 4
gpt4 key购买 nike

使用 signal()或者,最好是 sigaction() ,我们可以选择忽略或显式处理大部分 POSIX signals .例如为了忽略 SIGCHLD我们可以做到以下几点:

struct sigaction sa_chld = { .sa_handler = SIG_IGN };
sigaction(SIGCHLD, &sa_chld, NULL);

是否还有一种方法可以确定给定的信号是否被程序忽略和/或捕获?

理想情况下,我想区分信号是否...
  • 正在按照 default actions 处理
  • 被明确忽略
  • 被明确抓获
  • 最佳答案

    对于正在运行的进程,您可以查看 /proc/PID/status并检查字段 SigBlk , SigIgn , 和 SigCgt分别用于阻塞、忽略和捕获信号。

    有人写了utility script方便“解码”它,我个人认为它非常有用并且一直在使用它。

    proc 有关详细信息和更多相关领域的文档。

    关于c - 如何检查进程是否忽略或处理信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61838164/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com