进程间通讯 管道,进程管道通信方式

  进程间通讯 管道,进程管道通信方式

  进程间通信:管道-全职C-C博客

  进程间通信:管道转向高级unix编程,仔细看管道,修改实现书中的例子。

  虽然很简单,但确实揭示了多进程编程的基础。

  使用管道非常非常简单。之前只是看,没有练过!

  #包含常用内容. h

  #defineMAXLINE256

  intmain(intargc,char*argv[])

  {

  intfd[2];//管道fd

  pid _ tpid//子进程的PID

  charline[MAXLINE];

  If((pipe(fd)) 0)//创建PID,其中fd[0]是读管道,fd[1]是写管道。

  {

  cout pipeerror endl

  退出(0);

  }

  If((pid=fork()) 0)//创建子进程

  {

  cout forkerror endl//一般来说,进程太多就会出错。

  退出(0);

  }

  fork执行后,当前进程会得到子进程的pid,而子进程会得到0。可以通过getppid()获取父进程

  如果(pid 0)

  {

  //父进程将数据写入管道

  char buffer[MAXLINE];

  close(FD[0]);

  “cout”输入:“”;

  cin.getline(buffer,MAXLINE);

  write(fd[1],buffer,strlen(buffer));

  }

  其他

  {

  //子进程接收数据

  close(FD[1]);

  intn=read(fd[0],line,MAXLINE);

  line[n]=0;

  cout read message: line endl;

  }

  return0

  }

进程间通讯 管道,进程管道通信方式