进程间通信方式(2)---信号

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信号是进程间通信机制中唯一的异步通信机制,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号可类比处理器收到一个中断请求。

常见信号:

SIGKILL:杀死进程,不能忽略

SIGSTOP:停止一个进程,不能忽略

SIGCHILD:当子进程状态发生改变,内核会向父进程发送此信号,进程默认忽略这个信号

SIGINT:ctrl+c

SIGPIPE:对管道的操作的时候,如果读端不存在,写管道会发送此信号

信号处理方式:

忽略信号signal(signum,SIG_IGN);

捕捉信号:signal(signum,handler);

默认操作signal(signum,SIG_DFL);

用到的函数:

int kill(pid_t pid,int sigNum);//给指定的进程发送信号

int raise(int sigNum);//给自己发送信号

unsigned int alarm(unsigned int seconds);//设置定时器,定时时间到,内核向进程发送SIGALARM

int pause(void);//调用次函数回引起堵塞,当信号来临,并且设置了捕捉信号是,会将其唤醒,从pause 后面开始执行

相关文档
最新文档