linux下进程间通信的几种主要手段简介: 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某 ...
分类:
系统相关 时间:
2016-07-20 09:04:24
阅读次数:
214
进程通信IPC目的 1. 数据传输 2. 数据共享 3. 通知 4.进程控制 debug 管道: 无名管道半双工,限亲缘父子进程 有名管道,不限关系,本地网络都支持,支持双向。 信号量: 同步。资源PV操作.P -1 V +1 消息队列:有足够权限进程可以带走某一条消息。 共享内存: 最快。不需要数 ...
分类:
系统相关 时间:
2016-07-08 19:45:34
阅读次数:
188
pipe(建立管道)(无名管道,有名管道为fifo)相关函数:mkfifo, popen, read,write fork表头文件:#include <unistd.h>定义函数:int pipe(int filedes[2]);函数说明:pipe ( )会建立管道,并将文件描述词由参数filede ...
分类:
其他好文 时间:
2016-06-21 20:50:09
阅读次数:
129
在前面,我们学习了传统的进程间通信方式——无名管道(pipe)、有名管道(fifo)和信号(signal)。
下面我们来学习 System V IPC 对象:
1、共享内存(share memory);
2、信号灯(semaohore);
3、消息队列(message queue);
IPC对象是活动在内核级别的一种进程间通信...
分类:
系统相关 时间:
2016-06-21 07:10:49
阅读次数:
327
现在再Linux应用较多的进程间通信方式主要有以下几种:
1)无名管道(pipe)及有名管道(fifo):无名管道可用于具有亲缘关系进程间的通信;有名管道除具有管道相似的功能外,它还允许无亲缘关系进程使用;
2)信号(signal):信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程某事件发生。一个进程收到一个信号与处理器收到一个中断请求处理的过程类似;
...
分类:
系统相关 时间:
2016-06-19 11:41:59
阅读次数:
368
编写两个程序,一个程序是对管道的写数据、另一个是对管道的读数据。 有名管道的创建mkfifo 读数据:fifo_read.c 写数据: ...
分类:
系统相关 时间:
2016-06-19 11:33:21
阅读次数:
256
创建2个进程,在A进程中创建一个有名管道,并向其写入数据,通过B进程从有名管道中读出数据。 有名管道又称命名管道,可用于无亲缘关系的进程之间通信,在某些特点上类似于文件。 用法:通过mkfifo创建有名管道,之后就可以想操作普通文件通过open()、close()、write()、以及read()对 ...
分类:
其他好文 时间:
2016-06-04 09:19:23
阅读次数:
180
无名管道:主要是针对进程通信的(自己感觉它有很大的局限性) 特点:它不是一个文件系统,不能按名访问,这也是它和有名管道之间最大的区别。无名管道只是一个系统内存里面的东西。 半双工模式,数据只能流向一个方向(老师给我们举得例子就是水厂的水到居民用水,不可能倒着流对吧). 进程之间通信,但是只能是有亲缘 ...
分类:
系统相关 时间:
2016-05-27 20:27:17
阅读次数:
183
1.无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 2.高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。 3.有名管道 ...
分类:
系统相关 时间:
2016-04-20 23:29:38
阅读次数:
162
#管道 #有名管道 #信号量 #信号 #共享内存 #消息队列 #套接字 # 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许 ...
分类:
系统相关 时间:
2016-04-17 11:30:37
阅读次数:
250