基于管道通信
来源:互联网 发布:g41g42数控车编程方法 编辑:程序博客网 时间:2024/06/05 07:51
学习匿名管道pipe基于父子进程的通信:
匿名管道只能实现相关进程或者说是父子进程之间的通信.
如果要进行父子进程通信必须要先由父进程创建管道,然后调用fork来创建子进程,才能通信。同一个进程对于同一个管道只能做一件事情要么读管道,要么写管道不可能读写同一个管道,所以通常父进程若是用该管道写数据就会关闭读短。fork之前创建的管道是由父子进程共享,实其是复制了管道的描述符,因此操作的内容是一样的。不要把它想象成两个地址空间.
int fd[2];
main()
{
pipe(&fd[0]);
int ret = fork();
close(fd[1]); //父进程关闭写端,只能从管道0读数据
switch(ret)
{
case 0:
execvp();
close[fd[0]]; //子进程关闭读端,可以从管道1写数据
}
}
命名管道可以实现互不相关进程的通信
命名管道与普通文件的区别:
管道比一般的文件的灵活,因为一般的文件写进去的数据是一直存在的,而管道是随着读的过程数据在减少。
文件读到某位就会结束,而管道会用等待的方式来处理,在通信的过程中由于速率的问题通常会用到管道。比如
调试的cli通常使用命名管道来传递。
- 基于管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信 .
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- 管道通信
- Windows 7 安装 WebSphere 6.1 问题解决方法
- Servlet与Jsp的异同
- js获取select的值
- 堆和栈的区别
- linux -查看当前服务运行状态
- 基于管道通信
- 样将_variant_转化为vc中的数组
- 关于绿色版 MYSQL5 的资料
- 各种Jdk版本下,对Map的遍历
- (静态工厂方法来获取spring bean类)
- 关于jquery的事件重复执行的探讨
- ajaxFileUpload()中的success和error中的回调函数不执行的备注
- Android测试
- Java对Excel文件的读取