Linux进程间通信
进程间通信-信号-pipe-fifo
管道
在内核中借助环形队列机制,使用内核缓冲区实现。 管道是一种伪文件
管道常见的形式:
管道的特点:管道中的数据只能一次读取, 数据在管道中只能单向流动。 不能在一端同时读写。管道pipe()只用在血缘关系进程间。
pipe()的使用
尽管管道是由单个进程创建的,却很少在单个进程间使用。管道的典型用途是为两个不同的进程提供进程间的通信。
管道的一端只能占用读或写,因此在使用时需在一端关闭读端(或写端),而在另一端关闭写端(或读端)。
有名管道fifo
FIFO有两种用途:
(1) FIFO由s h e l l命令使用以便将数据从一条管道线传送到另一条,为此无需创建中间临时文件。
(2) FIFO用于客户机-服务器应用程序中,以在客户机和服务器之间传递数据。
如可以用于无血缘关系的进程间通信。
pipedemo.c 代码运行:
运行pipedemo2.c:
运行代码sigdemo1.c如下:
可知此处的中断处理函数是输出一个OUCH
运行代码sigdemo2.c如下:
运行 代码 sigactdemo.c如下:
我们输入ok,会提示input :ok,而我们按下ctrl+C,会提示可见ctrl+c为signal 2
运行代码sigactdemo2.c如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~