Linux编程_信号
信号的名字是在头文件signal.h(usr/include/signal.h)中定义的。
以SIG开头。
如果进程接收到信号中的一个,但事先没有捕获它,进程会立刻终止。一般会生成core文件,然后放在当前目录下。
信号处理
signal函数。
signal函数的原型声明:void (*signal(int signal_num, void(*func)(int))) (int)
可以使用signal库函数来处理信号。
信号的处理方式一般有三种:
1 忽略此信号。
2 执行该信号的默认动作。
3 提供一个信号处理函数。
信号处理的案例
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void ouch(int sig)
{
printf("OUCH! - I got signal %d\n", sig);
(void) signal(SIGINT, SIG_DFL);
}
int main()
{
(void) signal(SIGINT, ouch);
while(1){
printf("Hello World\n");
sleep(1);
}
}
SIGINT: 终止程序运行,CTRL+C键组合会产生该信号。ctrl+c == SIGINT (终端中断符)
SIGDFL:使信号恢复默认行为。
发送信号
进程可以通过kill函数向其他进程包括自己发送信号。
posted on 2021-07-25 23:15 XiaoXiaoli 阅读(57) 评论(0) 收藏 举报
浙公网安备 33010602011771号