C语言signal函数
时间: 2023-08-13 15:53:32 浏览: 155
C语言中的signal函数是用于处理信号的函数。信号是在操作系统中用于通知进程发生某些事件的机制,比如按下Ctrl+C键、程序异常终止等。
signal函数的原型为:
```c
void (*signal(int signum, void (*handler)(int)))(int);
```
其中,`signum`表示要处理的信号的编号,`handler`是一个指向函数的指针,用于指定信号处理函数。
常见的信号处理函数有以下几种:
- SIG_DFL(默认动作):采用系统默认的动作来处理信号。
- SIG_IGN(忽略信号):忽略该信号,即不对该信号采取任何动作。
- 自定义函数:可以自定义一个函数来处理特定的信号。
例如,下面的代码演示了如何使用signal函数来处理SIGINT信号(即按下Ctrl+C键):
```c
#include <stdio.h>
#include <signal.h>
void signal_handler(int signum) {
printf("Received signal: %d\n", signum);
}
int main() {
// 注册信号处理函数
signal(SIGINT, signal_handler);
printf("Press Ctrl+C to send a signal...\n");
while (1) {
// 无限循环
}
return 0;
}
```
在上面的例子中,当按下Ctrl+C键时,程序会执行自定义的信号处理函数signal_handler,并打印出接收到的信号编号。
阅读全文