管道通信属于进程间通信的一种方式,使用方便,但是局限是父进程与子进程间的通信,下面是调试好的代码。

程序父进程创建2个管道,分别用于父进程写数据--子进程读数据和子进程写数据--父进程读数据:

#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h> int main(int argc,char* argv[])
{
int fprcw[]; //for parent read,child write
int fpwcr[];
char str[]; pid_t pid; if(pipe(fprcw) == -)
{
perror("pipe1");
return -;
}
if(pipe(fpwcr) == -)
{
perror("pipe2");
close(fprcw[]);
close(fpwcr[]);
return -;
} pid = fork();
if(pid == )
{
close(fprcw[]);
close(fpwcr[]);
sleep();
write(fprcw[],"hello world!",);
read(fpwcr[],str,);
printf("child str is:%s\n",str); close(fpwcr[]);
close(fprcw[]);
}
else if(pid > )
{
close(fpwcr[]);
close(fprcw[]);
write(fpwcr[],"how are you!",); if(waitpid(pid,NULL,) == -)
{
perror("waitpid");
}
read(fprcw[],str,);
printf("parent str is: %s\n",str);
close(fpwcr[]);
close(fprcw[]); }
else
{
perror("fork"); } return ;
}

最新文章

  1. Spring MVC学习笔记——引入静态文件
  2. Factorization Machine因子分解机
  3. python os 命令,及判断文件夹是否存在
  4. 【HDOJ】4043 FXTZ II
  5. 转:1.1 cdev_init cdev_alloc 使用说明
  6. [Usaco2007 Jan]Running贝茜的晨练计划[一般DP]
  7. java导出数据Excel总结
  8. node.js的基础知识
  9. HDU 5984.Pocky(2016 CCPC 青岛 C)
  10. python进阶(一)
  11. 【BZOJ3668】【NOI2014】起床困难综合症(贪心)
  12. HTML 设置字体
  13. propTypes
  14. HttpURLConnection和HttpClient的区别2(转)
  15. Java中List的排序方法
  16. Linux服务器部署系列之七—OpenLDAP篇
  17. Android项目文件夹结构分析
  18. Asp.Net Core App 部署故障示例 2
  19. LogUtils.java
  20. java容易混淆的的内部类相关概念

热门文章

  1. 计算std:string的字节长度
  2. 创建一个maven web project
  3. YHMMR003 农户基本信息的维护程序
  4. CF 628C --- Bear and String Distance --- 简单贪心
  5. 设计模式-UML类图的各符号含义(转)
  6. HTTP Status 404 - /chp-adapter-web/ 问题解决
  7. 获取本机MAC地址
  8. ASP.NET MVC利用ajax把action的JavaScript注册到页面并执行
  9. HBase体系结构(转)
  10. Android String操作