【UNIX】什么是进程间FIFO通信以及信号通信
上篇中的无名管道通信是父子进程之间的通信,限定了进程之间的通信,从而就有了有名管道,它可以使不同进程之间进行通信,有名管道可以通过指定路径名来指出,兵长文件系统中可见。进程通过文件IO来操作有名管道,有名管道遵从先进先出的原则,但是不支持lseek函数。
1)int mkfifo(const char *pthname,mode_t mode)创建有名管道,
2)在内核中创建对象,但没有打开读写,有名管道的读写要自己打开,
3)文件对象在文件系统中创建文件节点,
4)在两个进程中,只会创建一次,若有节点则不会创建,第二次创建会返回错误信息,
FIFO的一般形式函数:
信号通信
1)信号通信是在软件层次上对中断机制的一种模拟,是一种异步通信方式。
信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件,
若果该进程当前处于未执行的状态,该信号就由内核保存起来,直到该进程恢复执行再传递给它,若果一个信号被进程设置为阻塞,则该信号的传递被延迟,直到阻塞被取消才传递给进程。
2)信号的生命周期
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。