进程间通信:
1使用管道进行进程间的通信
(1)有名管道
mkfifo xxx.pipe
(2) 无名管道
int pipe(int pipefd[2]);
文件描述符 pipefd[0]代表读端,pipefd[1]代表写端
2. 使用共享内存实现进程间的通信
步骤:
获取key值,使用ftok函数
创建、获取共享内存,使用shmget函数
接挂共享内存,使用shma...
分类:
其他好文 时间:
2015-06-17 15:29:55
阅读次数:
133
1. 前言
本篇文章的所有例子,基于RHEL6.5平台。前一篇文章介绍了匿名管道。点此链接。
2.介绍
管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(named pipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只...
分类:
系统相关 时间:
2015-06-17 01:52:59
阅读次数:
253
下面举linux下有名管道通信的代码。-----------------------------------------fifo_read.c===========#include#include#include#include#include#include#define FIFO "myfif....
分类:
系统相关 时间:
2015-06-12 17:03:05
阅读次数:
237
1.mkfifo -m 777 fifo1 : 创建一个有名管道,权限是7772.可以实现无关进程间的通信,克服了匿名管道的缺陷3.,管道文件最前面是 p4.管道文件传输信息类似于文件,但又区别于普通文件,管道文件在数据读出后,管道中就会同时清除数据5.函数创建管道: #include#includ...
分类:
其他好文 时间:
2015-06-09 09:37:08
阅读次数:
135
无名管道,由于没有名字,只能用于亲缘关系的进程间通信(更多详情,请看《无名管道》)。为了克服这个缺点,提出了命名管道(FIFO),也叫有名管道、FIFO 文件。
命名管道(FIFO)不同于无名管道之处在于它提供了一个路径名与之关联,以 FIFO 的文件形式存在于文件系统中,这样,即使与 FIFO 的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过 FIFO 相互通信,因此,通过 FIFO 不相关的进程也能交换数据。...
分类:
系统相关 时间:
2015-06-02 18:05:21
阅读次数:
125
有名管道:无名管道的一个扩展,无名管道是程序运行时存在,有名管道是持久的,一旦创建,所有权限进程都可以访问。 有名管道是单向通道,只能以只读或者只写方式打开。如果要实现双向通信,必须打开两个管道。 有名管道创建:os.mkfifo(path),读写和操作文件一样,open(‘path’, ‘w’),...
分类:
系统相关 时间:
2015-05-22 22:27:55
阅读次数:
305
用于进程间通信的有5种常用方式:管道、FIFO、消息队列、信号量、共享存储等。
管道 (亦被称为无名管道,以区分FIFO:有名管道)顾名思义具有两个对外端口,一个称为读端,一个称为写端。一个进程在管道的写端写数据,另一个进程从管道的读端
读出数据。如下图所示:
管道仅局限于父进程与子进程之间的通信。
管道通信的特点:
1.管道通讯是单向的,有固定的读端和写端。
2. 数据被进程...
分类:
其他好文 时间:
2015-05-20 13:20:23
阅读次数:
156
linux应用开发-有名管道编程
一 有名管道
用于任意两个进程通信,有名管道又称为FIFO文件,因此我们对有名管
道的操作可以采用操作文件的方法,如使用open,read,write等.
2 特点
FIFO文件在使用上和普通文件有相似之处,但是也有不同之处:
1. 读取Fifo文件的进程只能以”RDONLY”方式打开fifo文件。
2. 写Fifo文件的进程...
分类:
系统相关 时间:
2015-05-01 14:48:06
阅读次数:
148
linux应用开发-无名管道编程
一 linux进程间通信(ipc)
1 UNIX进程间通信
2 基于System V的通信
3 POSIX通信
二 七种通信方式
1 管道
一个进程在管道的尾部写入数据,另一个进程从管道的头部
读出数据。管道包括无名管道和有名管道两种,前者只能用
于父进程和子进程间的通信,后者可用于运行于同一系统中
的任意两个进程间的通信。
...
分类:
系统相关 时间:
2015-05-01 13:24:32
阅读次数:
205
刚请完婚假,请假期间做了些技术总结,其中一个就是Linux进程间通信方式的总结。Linux提供了多种进程间通信的方式,列举如下:PIPE(管道)FIFO(先进先出,也称为有名管道)domain_socket(域套接字)XSI-semaphore(XSI信号量)XSI-message_queue(XS...
分类:
系统相关 时间:
2015-04-28 09:24:39
阅读次数:
391