需求
监听到程序是否接收到退出命令,或者中断命令等处理.
需要用到的库
<signal.h>
常量解析
宏 | 信号 | 说明 |
---|---|---|
SIGABRT | Signal Abort | 程序异常终止 |
SIGFPE | Signal Floating-Point Exception | 算术运算出错 如:除以0 |
SIGINT | Signal Interrupt | 中断信号 如:ctrl-C |
SIGSEGV | Signal Segmentation Violation | 非法访问不存在的内存单元 |
SIGTERM | Signal Terminate | 发送给本程序的终止请求信号. |
signal() 函数用法
DEMO
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
void sighanlder(int);
int main()
{
signal(SIGINT, sighandler);
while(1)
{
print("start sleeping!");
sleep(1);//unit is second
}
return 0;
}
void sighandler(int signum)
{
printf("Catch a signal num is %d ...\n", signum);
exit(1);
}