进程通信---管道通信
来源:互联网 发布:php阿里蜘蛛池 编辑:程序博客网 时间:2024/05/01 22:33
目的
数据传输——一个进程需要将它的数据发送给另一个进程
资源共享——多个进程之间共享同样的资源
通知事件——一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件
进程控制——有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变
管道通信
·管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。
·一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据
·数据被一个进程读出后,将被从管道中删除,其它读进程将不能再读到这些数据。
·管道提供了简单的流控制机制,进程试图读空管道时,进程将阻塞。同样,管道已经满时,进程再试图向管道写入数据,进程将阻塞
无名管道:
1.pipe
函数的原型:int pipe(int fds[2])
函数的参数:新建的两个描述符fds数组返回,fds[0]表示管道的读取端,fds[1]表示管道的写入端。
返 回 值:成功0,出错-1
头 文 件:#include <unistd.h>
管道读写:
1.先创建管道pipe;
2.fork创建子进程
有名管道:
·创建管道mkfifo
·打开管道open
·读管道read
·写管道write
·关闭管道close
·删除管道unlink
2.mkfifo
函数的作用:创建有名管道
函数的原型:int mkfifo(const char * filename,mode_t mode)
参数的作用:filename:有名管道的路径、名称
mode:打开管道的方式
O_NONBLOCK: FIFO打开的时候,费阻塞
O_RDONLY: 只读
O_WRONLY: 只写
O_RDWR: 可读
关于:有名管道的可以用于两个没有任何关系的进程,
无名管道用于父子进程之间的通信;
- 进程通信 管道通信
- 进程通信---管道通信
- 进程通信之管道通信
- 进程通信之管道通信
- 进程通信,管道通信 1.0
- 进程通信之管道通信
- 进程间通信-管道通信
- 【进程通信】之管道通信
- 进程间通信--管道通信
- 进程间管道通信
- 进程间通信: 管道
- 进程通信之管道
- Linux进程通信:管道
- 进程间通信--管道
- 进程间通信----管道
- Linux进程通信-管道
- 进程通信(管道)
- 进程通信-匿名管道
- 阿里15年前端实习笔试-做的答案
- hibernate实验
- C语言顺序表的简单实现
- poj---1751 Highways
- HDU 4296 Buildings
- 进程通信---管道通信
- android群英传笔记--第三章--自定义控件三简单形状View
- effective C++之静态全局变量的初始化问题及解决办法
- 一个简单的自定义DialogFragment
- 应用程序初次运行数据库配置小程序(Java版)
- 继承小结
- 弱引用的集合类
- Storm介绍
- <杂谈>参加饿了吗高管讲座的一些记录