<signal.h> 是C语言标准库中的头文件,用于处理程序中与信号相关的操作。信号是一种在计算机程序中处理异步事件的方式,例如中断或错误。

以下是 <signal.h> 中一些常见的函数和宏:

信号处理函数

1. signal 函数
   #include <signal.h>

   void (*signal(int signum, void (*handler)(int)))(int);

   该函数用于设置信号处理函数。signum 参数指定信号的类型,handler 参数指定了相应信号的处理函数。返回之前注册的信号处理函数。

预定义的信号常量

1. SIGINT, SIGTERM, SIGSEGV 等

   这些常量表示不同的信号类型,如中断、终止、段错误等。详细的信号类型可以查看系统的 <signal.h> 头文件。

示例

以下是一个简单的示例,演示了如何使用 <signal.h> 中的函数处理 SIGINT 信号(在用户按下 Ctrl+C 时发送):
#include <stdio.h>
#include <signal.h>

// 信号处理函数
void sigint_handler(int signum) {
    printf("Received SIGINT signal. Exiting...\n");
    // 这里可以进行一些清理工作
    exit(0);
}

int main() {
    // 注册信号处理函数
    signal(SIGINT, sigint_handler);

    printf("Press Ctrl+C to trigger SIGINT signal.\n");

    // 进入无限循环
    while (1) {
        // 空循环,等待信号
    }

    return 0;
}

在这个示例中,signal 函数用于注册 SIGINT 信号的处理函数 sigint_handler。当用户按下 Ctrl+C 时,程序将收到 SIGINT 信号,并执行注册的处理函数,输出一条信息并退出程序。这是一种在程序运行时处理异步事件的方式。


转载请注明出处:http://www.zyzy.cn/article/detail/13553/C 语言