在 C 中捕获信号

Capturing signals in C

我正在努力实现使用 C 语言在进程中捕获信号的能力。

谁能帮我举个例子?

谢谢。

您需要使用 signal.h 库。

这是一个工作示例,我在其中捕获 SIGINT 并将消息打印到 STDOUT:

#include<stdio.h>
#include<signal.h>

void sig_handler(int signo)
{
    if (signo == SIGINT)
        write(0, "Hello\n", 6);
}

int main(void)
{
    signal(SIGINT, sig_handler);
    // Just to testing purposes
    while(1)
        sleep(1);
    return 0;
}