unix之进程通信(IPC)
来源:互联网 发布:淘宝偷换宝贝技巧 编辑:程序博客网 时间:2024/05/10 14:12
1、管道
管道是半双工的,也就是说数据只能在一个方向上流动。它们也只能在具有公共祖先的进程之间使用(通常一个管道由一个进程创建,然后该进程调用fork,此后父子进程之间就可以使用该管道了)。
函数原型:
#include <unistd.h>
int pipe(int filedes[2]);
返回值:若成功返回0,若错误返回-1
经由参数filedes返回两个文件描述符:filedes[0] 为读打开、filedes[1] 为写打开,file[1]的输出就是file[0]的输入。
单个进程中的管道没有任何意义,通常是在父子进程之间通过管道进行通信(至于方向是可以自己确定的,不一定一定是父进程写,子进程读,也可以反过来的)。
当一个管道的某一端被关闭时,下面的规则就成立:
1、如果写端被关闭,所有的数据被读取后,read就返回0,表明已到达了文件的结尾处。
2、如果写一个读端被关闭的管道时,就会产生信号SIGPIPE。如果忽略该信号或者捕捉该信号并且从处理程序返回,则write返回-1 ,errno设置为EPIPE。
在写管道(FIFO)时,常量PIPE_BUF规定了内核中管道缓冲区的大小。
下面是一个具体的例子:
- unix之进程通信(IPC)
- UNIX中的进程通信(IPC)
- 【Unix编程】进程间通信(IPC)
- 【Unix编程】进程间通信(IPC)
- Linux\Unix IPC进程通信
- Unix IPC进程间通信
- Unix IPC进程间通信
- Unix IPC进程间通信
- UNIX/Linux进程间通信IPC系列(一)总论
- UNIX/Linux进程间通信IPC系列(三)FIFO
- UNIX/Linux进程间通信IPC系列(二)管道
- UNIX/Linux进程间通信IPC系列(六)信号量
- UNIX/Linux进程间通信IPC系列(五)信号
- 进程间通信(IPC)之管道
- Qt之进程间通信(IPC)
- Qt之进程间通信(IPC)
- UNIX 进程间的通信--IPC
- 进程通信(ipc)
- Android 2.1 源码结构分析
- JavaScript 调用WebService 基于Soap 通讯
- 今天安家
- 【转】设计 REST 风格的 MVC 框架
- poj1679——The Unique MST
- unix之进程通信(IPC)
- VC生成dll的方法
- dom4j实现模拟Spring读取配置文件 注入
- 严重: Exception starting filter struts2 Caught exception while loading file struts-default.xml - [unknown location]
- 简述开通这个博客的原因
- win2003+vs2010下安装asp.net MVC3正式版失败经历
- 安装QuantaPlus
- sprintf() 详解
- 使用C语言进行socket 多线程编程