Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7678877
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: C/C++

2010-12-08 19:16:44

#include

#include

#include

#include

#include

#include

 

int main()

{

      int pipe_fd[2];

      pid_t pid;

      char buf_r[100];

      char* p_wbuf;

      int r_num;

     

      memset(buf_r,0,sizeof(buf_r));

     

      /*创建管道*/

      if(pipe(pipe_fd)<0)

      {

           printf("pipe create error\n");

           return -1;

      }

     

      /*创建子进程*/

      if((pid=fork())==0)  //子进程执行序列

      {

           printf("\n");

           close(pipe_fd[1]);//子进程先关闭了管道的写端

           sleep(2); /*让父进程先运行,这样父进程先写子进程才有内容读*/

           if((r_num=read(pipe_fd[0],buf_r,100))>0)

           {

                 printf("%d numbers read from the pipe is %s\n",r_num,buf_r);

           }   

           close(pipe_fd[0]);

           exit(0);

    }

      else if(pid>0) //父进程执行序列

      {

           close(pipe_fd[0]); //父进程先关闭了管道的读端

           if(write(pipe_fd[1],"Hello",5)!=-1)

                 printf("parent write1 Hello!\n");

           if(write(pipe_fd[1]," Pipe",5)!=-1)

                 printf("parent write2 Pipe!\n");

           close(pipe_fd[1]);

           waitpid(pid,NULL,0); /*等待子进程结束*/

           exit(0);

      }

      return 0;

}

 

阅读(1194) | 评论(0) | 转发(3) |
0

上一篇:进程编程

下一篇:有名管道

给主人留下些什么吧!~~