在C语言中,`signal`函数用于注册信号处理程序,即在接收到特定信号时执行指定的处理函数。下面是`signal`函数的基本用法:
```c
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
void signalHandler(int signal) {
? ? printf("Received signal %d\n", signal);
? ? // 执行信号处理的逻
}
int main() {
? ? // 注册信号处理
? ? if (signal(SIGINT, signalHandler) == SIG_ERR) {
? ? ? ? perror("Unable to register signal handler");
? ? ? ? exit(EXIT_FAILURE);
? ? }
? ? printf("Sending SIGINT signal...\n");
? ? raise(SIGINT); ?// 发送SIGINT信号 ? ?return 0;
}
```
示例中,我们首先定义了一个名为`signalHandler`的信号处理函数。
然后在`main`函数中使用`signal`函数来注册`signalHandler`函数,以处理`SIGINT`信号。当程序运行时,它会发送`SIGINT`信号,然后`signalHandler`函数将被调用来处理这个信号。