有名管道通讯编程

创建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

时间: 2024-10-17 15:04:15

有名管道通讯编程的相关文章

无名管道与有名管道通讯编程

管道通讯:一个进程在管道的尾部写入数据,另一个进程从管道的头部读出数据.管道包括无名管道和有名管道两种,前者只能用于父进程和子进程间的通信,后者可用于运行于同一系统中的任意两个进程间的通信. 管道通讯的特点: 1. 管道通讯是单向的,有固定的读端和写端. 2. 数据被进程从管道读出后,在管道中该数据就不存在了. 3. 当进程去读取空管道的时候,进程会阻塞. 4. 当进程往满管道写入数据时,进程会阻塞. 5. 管道容量为64KB(#define PIPE_BUFFERS 16,include/li

13.无名管道通讯编程

? 1.进程间的通信: Linux作为典型的多进程操作系统,进程与进程之间肯定需要信息交流,这就需要进程通信. 2.进程通信的目的: ????1.数据传输:一个进程需要将数据发送给另一个进程. ????2.资源共享:多个进程之间共享同样的资源. ????3.通知事件:一个进程需要向另一个/组进程发送信息,通知他们发生了某些事情. ????4.进程控制:有些进程希望完全控制另一个进程的执行,例如Debug进程.此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道他的状态改变. ? 3.通讯

[国嵌攻略][081][有名管道通讯]

有名管道 有名管道又称为FIFO文件,因此我们对有名管道的操作可以采用文件操作的方法,如使用open,read,write等. FIFO文件的特点 1.读取FIFO文件的进程只能以RDONLY方式打开FIFO文件. 2.写入FIFO文件的进程只能以WRONLY方式打开FIFO文件. 3.FIFO文件里面的内容被读取后就消失了,但普通文件里面的内容被读取后还存在. wFIFO.c #include <sys/types.h> #include <sys/stat.h> #includ

有名管道通讯

一.有名管道 1.有名管道又称FIFO文件,我们对有名管道的操作可以采取操作文件的方式,如使用open, read,write. 2.FIFO文件与普通文件不同处 (1). 读取FIFO文件的进程只能以“RDONLY”方式打开fifo文件. (2). 写Fifo文件的进程只能以“WRONLY”方式打开fofo文件. (3). Fifo文件里面的内容被读取后,就消失了.但是普通文件里面的内容读取后还存在 二.函数学习(创建FIFO文件,向FIFO写入数据, 退出) 1.创建管道 函数名: mkfi

第12课-有名管道通讯

1.有名管道:又称为FIFO文件.2.man命令:1.系统命令,2.系统调用,3库函数3.函数学习5.2 创建有名管道5.2.1 函数名mkfifo5.2.2 函数原形int mkfifo(const char *pathname, mode_t mode);5.2.3 函数功能创建一个fifo文件(有名管道)5.2.4 所属头文件<sys/types.h><sys/stat.h>5.2.5 返回值成功:0失败:-15.2.6 参数说明Pathname:要创建的fifo文件的名字(

无名管道通讯编程

创建无名管道用于父子间进程通信. 1.无名管道概念:无名管道又称pipe,是Linux所支持的IPC方式的一种,它具有以下特点: 1)只能用于具有血缘关系的进程之间. 2)属于半双工的通信模式,具有固定的读端和写端 3)是一种特殊的文件,存在于内存中,可通过read.write对其操作. 2.无名管道的用法 因为pipe存在于内存中,所以无法像操作普通文件那样通过指定路径来打开文件.通常的做法是在父进程中创建管道,再创建子进程.由于子进程继承了父进程打开的文件描述符,所以父子进程就可以通过创建的

linux应用开发-有名管道编程

linux应用开发-有名管道编程 一 有名管道 用于任意两个进程通信,有名管道又称为FIFO文件,因此我们对有名管 道的操作可以采用操作文件的方法,如使用open,read,write等. 2 特点 FIFO文件在使用上和普通文件有相似之处,但是也有不同之处: 1. 读取Fifo文件的进程只能以"RDONLY"方式打开fifo文件. 2. 写Fifo文件的进程只能以"WRONLY"方式打开fifo 3. Fifo文件里面的内容被读取后,就消失了.但是普通文件里面的内

进程间通讯之有名管道

进程通信是指在进程间交换信息(传输数据).目前的计算机系统均提供了多任务并行环境,无论是应用程序还是系统程序,都需要针对每一个任务创建相应的进程. 每个进程之间都是相互独立的,不同的进程运行在各自不同的内存空间中,因此,进程之间的信息传递不可能通过变量或其他数据结构直接进行,只能通过进程间通讯完成. 进程间通讯方式:信号 .管道.信号量.消息队列.共享内存.Socket 今天介绍一下通过管道进行程序间的通讯.管道分为有名管道和无名管道. (管道文件)(半双工通讯:数据流向是单向的.) 有名管道:

第11课-无名管道通讯

1.进程间通讯的目的(1)数据传输(2)资源共享(3)通知事件(4)进程控制2.通讯发展(1)UNIX进程间通讯(2)基于System V进程间通讯(3)POSIX进程间通讯3.POSIX标准4.进程间通讯的主要方式(1)无名管道(2)有名管道(3)信号(4)消息队列(5)共享内存(6)信号量(7)套接字5.管道通信(1)一个进程在管道尾部写入数据,另一个进程管道头部读取数据(2)无名管道:只能用于父进程子进程之间的通讯(3)有名管道:可以用于任意两个进程间的通讯6.管道特点:(1)管道通讯是单