C语言 signal函数
时间: 2023-08-13 20:18:25 浏览: 174
查信号函数C语言
signal函数是C语言中用来处理信号的函数。它的原型如下:
```c
void (*signal(int sig, void (*func)(int)))(int);
```
其中,sig表示所要处理的信号类型,func是一个函数指针,指向处理该信号的函数。signal函数的返回值是一个函数指针,指向之前对该信号处理的函数。
signal函数的作用是在程序中注册信号处理函数,当操作系统向进程发送该信号时,就会执行注册的信号处理函数。常用的信号类型包括SIGINT(中断信号)和SIGTERM(终止信号)等。
例如,下面的代码注册了一个处理SIGINT信号的函数:
```c
#include <stdio.h>
#include <signal.h>
void sigint_handler(int sig)
{
printf("Received signal %d\n", sig);
}
int main()
{
signal(SIGINT, sigint_handler);
while (1)
{
// do something
}
return 0;
}
```
当用户在终端中按下Ctrl+C时,就会向该进程发送SIGINT信号,并且调用注册的信号处理函数sigint_handler。在该函数中,我们可以添加一些自定义的处理代码,比如打印一条消息。
阅读全文