signal函数使用
时间: 2023-11-08 20:04:24 浏览: 102
signal函数是用于处理信号的函数,其原型为:
```c
#include <signal.h>
void (*signal(int signum, void (*handler)(int)))(int);
```
其中,signum表示要处理的信号编号,handler表示信号处理函数的指针。signal函数的返回值是一个函数指针,用于保存该信号的旧处理函数。
signal函数的主要作用是注册信号处理函数。当程序接收到指定的信号时,就会自动调用该信号的处理函数。例如,可以使用signal函数注册SIGINT信号的处理函数,当用户按下Ctrl+C时,就会自动调用该函数。
下面是一个例子,演示如何使用signal函数注册SIGINT信号的处理函数:
```c
#include <stdio.h>
#include <signal.h>
void sigint_handler(int sig)
{
printf("Caught SIGINT signal!\n");
}
int main()
{
// 注册SIGINT信号的处理函数
signal(SIGINT, sigint_handler);
printf("Press Ctrl+C to send SIGINT signal...\n");
// 等待SIGINT信号的到来
while (1)
{
// do nothing
}
return 0;
}
```
在上面的例子中,我们首先定义了一个名为sigint_handler的函数,用于处理SIGINT信号。然后在main函数中,使用signal函数注册该信号的处理函数。最后,程序进入一个死循环,等待SIGINT信号的到来。当用户按下Ctrl+C时,就会自动调用sigint_handler函数。
阅读全文
相关推荐
















