有名管道通讯编程

Posted 郭润

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有名管道通讯编程相关的知识,希望对你有一定的参考价值。

创建2个进程,在A进程中创建一个有名管道,并向其写入数据,通过B进程从有名管道中读出数据。

有名管道又称命名管道,可用于无亲缘关系的进程之间通信,在某些特点上类似于文件。

用法:通过mkfifo创建有名管道,之后就可以想操作普通文件通过open()、close()、write()、以及read()对它进行相应操作。

1、创建一个有名管道--mkfifo

头文件:#include<sys/types.h>,#include<sys/stat.h>

原型:int mkfifo(const char *pathname,mode_t mode);

参数说明:pathname:创建有名管道对应的实名文件路径,mkfifo()会依参数建立特殊的FIFO文件,该文件必须不存在,mode:文件的权限。

返回值:成功返回0,失败返回-1,错误原因存于errno中。

2、删除有名管道(实质是一个文件)---unlink

头文件:#include<unistd.h>

原型:int unlink(const char *pathname);

参数说明:pathname:有名管道文件路径名

返回值:成功返回0,失败返回-1,错误原因存于errno中。

fifo_write.c

 

以上是关于有名管道通讯编程的主要内容,如果未能解决你的问题,请参考以下文章

进程间通讯之有名管道

14.有名管道通信

进程间通讯(linux C/Python)

关于有名管道和无名管道

Linux环境进程间通信:管道及有名管道

Linux系统编程POSIX有名信号量