使用有名管道完成本地两个进程之间的单项通信

使用有名管道完成进程通信

进程A

首先编写进程A的代码,用到的头文件也比较多,
头文件如下:
<stdio.h>
<string.h>
<unistd.h>
<sys/stat.h>
<sys/types.h>
<fcntl.h>

一般管道按照编程模型:创建管道、打开管道、读写数据、关闭管道和删除管道,首先进程A将按照模型分为这五个步骤,数据部分采用
读取管道文件数据。

首先利用mkfifo函数创建管道,注意需要使用有效路径;然后按照路径打开管道,由于本程序使用读取文件,所以文件权限使用O_RDONLY为只读权限,然后设立一个死循环不断读取管道文件的数据,当接收到另一个进程B写入到管道文件中"quit"字符串时,则通信结束,然后关闭管道最后删除管道文件,注意进程B也需要关闭管道,然后删除管道才能成功!以下为进程A程序源代码:
在这里插入图片描述

进程B

进程B的头文件与上面代码相同,按照编程模型但只需要打开管道然后写入管道文件然后关闭文件,注意一定要关闭文件!否则进程A中管道删除则会失败!
在这里插入图片描述
以下为程序执行的结果,进程B输入数据,进程A读取数据,实现进程间单项通信,进程B输入quit结束所有进程。
在这里插入图片描述