首页IT科技多进程管道通信(进程间通信:管道 专职C++ C++博客)

多进程管道通信(进程间通信:管道 专职C++ C++博客)

时间2025-07-07 19:24:31分类IT科技浏览6771
导读:翻开高级unix编程,仔细看了一下管道,并将书中的例子修改并实现。...

翻开高级unix编程,仔细看了一下管道,并将书中的例子修改并实现。

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

用管道非常真是非常的简单。以前只是看了,没有实践!
#include<common.h>#defineMAXLINE256intmain(intargc,char*

argv[])

{

intfd[2];//管道fdpid_tpid;//子进程的PIDchar

line[MAXLINE];

if((pipe(fd))<0)//创建PID,其中fd[0]为读管道,fd[1]为写管道

{

cout
<<"pipeerror"<<

endl;

exit(
0

);

}
if((pid=fork())<0)//创建子进程

{

cout
<<"forkerror"<<endl;//一般是进程过多的时候才会出错exit(0

);

}
//执行fork后,当前进程会得到子进程的pid,而子进程得到的是0,可以通过getppid()取得父进程if(pid>0

)

{

//父进程向管道写数据char

buffer[MAXLINE];

close(fd[
0

]);

cout
<<"input:"

;

cin.getline(buffer,MAXLINE);

write(fd[
1

],buffer,strlen(buffer));

}
else

{

//子进程接收数据close(fd[1

]);

intn=read(fd[0

],line,MAXLINE);

line[n]
=0

;

cout
<<"readmessage:"<<line<<

endl;

}
return0

;

}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
verilog串行输入并行输出(串口接收模块——verilog实现) 建网站学seo(SEO技术培训,提升你的网站排名)