在早期的UNIX中信号是不可靠的,不可靠在这里指的是:信号可能丢失,一个信号发生了,但进程却可能一直不知道这一点。
现在Linux 在SIGRTMIN实时信号之前的都叫不可靠信号,这里的不可靠主要是不支持信号队列,就是当多个信号发生在进程中的时候(收到信号的速度超过进程处理的速度的时候),这些没来的及处理的信号就会被丢掉,仅仅留下一个信号。
可靠信号是多个信号发送到进程的时候(收到信号的速度超过进程处理信号的速度的时候),这些没来的及处理的信号就会排入进程的队列。等进程有机会来处理的时候,依次再处理,信号不丢失。
同时,信号的发送和安装也出现了新版本:信号发送函数sigqueue()及信号安装函数sigaction()。sigaction和signal函数都是调用内核服务do_signal函数;[内核服务函数,应用程序无法调用该函数
非实时信号都不支持排队,都是不可靠信号;实时信号都支持排队,都是可靠信号。
关于信号发送的一些API:
1.kill
int kill(pid_t pid, int signo);
参数&