如何通过调用signal注册回调函数
时间: 2023-11-06 07:05:59 浏览: 153
在库里面实现注册函数回调
要通过调用signal函数来注册回调函数,signal函数的原型为:void (*signal(int sig, void (*func)(int)))(int)。其中,第一个参数sig是指要注册的信号类型,第二个参数func是指要注册的回调函数,该函数需要接受一个参数,即信号类型。例如,通过如下代码可以注册一个处理SIGINT信号的回调函数:
```c
#include <signal.h>
#include <stdio.h>
void handle_sigint(int sig) {
printf("Received SIGINT\n");
}
int main() {
signal(SIGINT, handle_sigint); // 注册回调函数
printf("Press Ctrl+C to exit\n");
while (1) {
// 等待信号
}
return 0;
}
```
在上述代码中,我们通过调用signal函数,将SIGINT信号与handle_sigint回调函数关联起来。当程序收到SIGINT信号时,会自动调用handle_sigint函数,打印"Received SIGINT"的消息。
阅读全文