为了提供与其它系统的兼容性,Linux也支持三种system Ⅴ的进程间通信机制:消息、信号量(semaphores)和共享内存,Linux对这些机制的实施大同小异。我们把信号量、消息和共享内存统称System V IPC的对象,每一个对象都具有同样类型的接口,即系统调用。就像每个文件都有一个打开文件号一样,每个对象也都有唯一的识别号,进…
Linux 内核中不存在任何机制用来区分不同信号的优先级。也就是说,当同时有多个信号发出时,进程可能会以任意顺序接收到信号并进行处理。另外,如果进程在处理某个信号之前,又有相同的信号发出,则进程只能接收到一个信号。产生上述现象的原因与内核对信号的实现有关。
系统在 task_struct 结构中利用两个域分别记录当前…
除了signal()系统调用,Linux还提供关于信号的系统调用如下:
调用原型
功能
int sigaction(sig,&handler,&oldhandler)
定义对信号的处理操作
int sigreturn(&context)
从信号返回
int sigprocmask(int how, sigset_t *mask, sigset_t *old)
检查或修改信号屏蔽
int sigpending(sigset_t m…