进程间的通信
目录
信号
什么是信号?信号是给程序提供一种可以处理异步事件的方法,它利用软中断实现。不能定义信号,所有信号都是由系统预定义的
信号由谁产生 ?
1.由shell终端根据当前发送的错误(段错误,非法指令等)而产生相应的信号
2.在shell终端,使用kill或killall命令产生信号
信号的处理
忽略此信号
捕捉此信号,指定信号函数进行处理
执行系统默认操作,大多数都是终止进程
信号的捕获
信号的捕获指:指定接收到某种信号后,去执行指定的函数
注:SIGKILL和SIGSTOP不能被捕获
也就是说信号的响应不能被改变
使用:
typedef void (*sighandler_t)(int)
signhandler_t signal(int signum,sighandler_t handler);
注:signal 返回类型和第二个参数都是函数指针类型,第一个参数表示信号类型

本文详细介绍了Linux进程间的通信方式——信号,包括信号的产生、处理、捕获、发送及发送多个信号的场景。重点阐述了信号如何被系统和用户触发,信号的默认行为以及如何自定义信号处理函数。同时,文章还讨论了信号集的使用、阻塞式等待信号以及如何处理并发信号的情况。

1433

被折叠的 条评论
为什么被折叠?



