Linux信号学习笔记(2)信号导致的中断
当在执行处理函数时收到不同信号
当运行以下程序,子进程会依次接收到15、2的信号,此时信号2会中断信号15的处理函数,也就是说在处理一个信号时,如果接收到不同信号是会中断当前信号的处理。
#include<signal.h>
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
void handle(int sig)
{
for(int i=1;i<=5;i++)
{
printf("receiev signal:%d, i=%d\n",sig,i);
sleep(1);
}
}
int main()
{
int pid;
pid=fork();
if(pid>0)
{
printf("parent pid:%d.\n",getpid());
sleep(1);
kill(pid,15);
sleep(1);
kill(pid,2);