c语言 signal函数使用
时间: 2023-08-13 18:23:38 浏览: 120
signal函数是用于处理信号的函数,它有三个参数,第一个参数是要处理的信号类型,第二个参数是一个函数指针,指向信号发生时要执行的处理函数,第三个参数是一个选项,表示处理方式。
下面是signal函数的使用方法:
```c
void (*signal(int sig, void (*func)(int)))(int);
```
其中,sig是要处理的信号类型,func是信号发生时要执行的处理函数。如果func为SIG_IGN,则表示忽略该信号;如果func为SIG_DFL,则表示采用默认处理方式。
示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
void signal_handler(int sig)
{
printf("Received signal %d\n", sig);
exit(0);
}
int main()
{
signal(SIGINT, signal_handler); // 处理SIGINT信号
signal(SIGTERM, SIG_IGN); // 忽略SIGTERM信号
while (1) {
// do something
}
return 0;
}
```
在上面的示例代码中,我们使用signal函数来处理SIGINT和SIGTERM信号。如果收到SIGINT信号,则会执行signal_handler函数;如果收到SIGTERM信号,则会被忽略。在主函数中,我们使用一个while循环来模拟程序运行,直到收到SIGINT信号后退出程序。
阅读全文