我开始熟悉 C 中的信号。我无法弄清楚 SIGUSR1SIGUSR2 是哪种信号,以及如何触发它们。任何人都可以向我解释一下吗?

最佳答案

它们是用户定义的信号,因此它们不会由任何特定操作触发。您可以以编程方式显式发送它们:

#include <signal.h>

kill(pid, SIGUSR1);

其中 pid 是接收进程的进程 ID。在接收端,您可以为它们注册一个信号处理程序:
#include <signal.h>

void my_handler(int signum)
{
    if (signum == SIGUSR1)
    {
        printf("Received SIGUSR1!\n");
    }
}

signal(SIGUSR1, my_handler);

关于c - 如何触发 SIGUSR1 和 SIGUSR2?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6168636/

10-15 06:21