首页 > 代码库 > 【UNIX】什么是进程间FIFO通信以及信号通信
【UNIX】什么是进程间FIFO通信以及信号通信
上篇中的无名管道通信是父子进程之间的通信,限定了进程之间的通信,从而就有了有名管道,它可以使不同进程之间进行通信,有名管道可以通过指定路径名来指出,兵长文件系统中可见。进程通过文件IO来操作有名管道,有名管道遵从先进先出的原则,但是不支持lseek函数。
1)int mkfifo(const char *pthname,mode_t mode)创建有名管道,
2)在内核中创建对象,但没有打开读写,有名管道的读写要自己打开,
3)文件对象在文件系统中创建文件节点,
4)在两个进程中,只会创建一次,若有节点则不会创建,第二次创建会返回错误信息,
FIFO的一般形式函数:
<script src="https://code.csdn.net/snippets/538818.js" type="text/javascript"></script>
信号通信
1)信号通信是在软件层次上对中断机制的一种模拟,是一种异步通信方式。
信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件,
若果该进程当前处于未执行的状态,该信号就由内核保存起来,直到该进程恢复执行再传递给它,若果一个信号被进程设置为阻塞,则该信号的传递被延迟,直到阻塞被取消才传递给进程。
2)信号的生命周期
【UNIX】什么是进程间FIFO通信以及信号通信
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。