进程间通讯 管道,进程管道通信方式
进程间通信:管道-全职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
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。