进程间通信:管道 专职C++ C++博客
进程间通信:管道
翻开高级unix编程,仔细看了一下管道,并将书中的例子修改并实现。
虽然很简单,确揭示了多进程编程的基础。
用管道非常真是非常的简单。以前只是看了,没有实践!#include <common.h>
#define MAXLINE 256
int main(int argc, char * argv[])
{
int fd[2]; //管道fd
pid_t pid; //子进程的PID
char line[MAXLINE];
if( (pipe(fd) ) < 0 ) //创建PID,其中fd[0]为读管道,fd[1]为写管道
{
cout<<"pipe error"<<endl;
exit(0);
}
if( (pid = fork() )<0) //创建子进程
{
cout<<"fork error"<<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]);
int n = read(fd[0],line,MAXLINE);
line[n] = 0;
cout<<"read message:"<<line<<endl;
}
return 0;
}相关阅读:
[十二省联考2019]字符串问题:后缀数组+主席树优化建图
HAOI2018简要题解
使用单调队列维护决策三元组实现决策单调性优化DP的一些细节
杜教筛&min_25筛复习
分治NTT:我 卷 我 自 己
高级(并不)多项式算法总结
导数与微分简单总结(updated)
退役前的做题记录
USACO2018DEC PLATINUM
USACO2018DEC GOLD原文地址:https://www.cnblogs.com/lexus/p/2622517.html
最新文章
字符串算法小结
[CF1172E]Nauuo and ODT:Link-Cut Tree
死难写的模板合集(其实就一个)
[AGC034D]Manhattan Max Matching:费用流
[LOJ3120][CTS2019|CTSC2019]珍珠:生成函数+NTT
[LOJ3124][CTS2019|CTSC2019]氪金手游:树形DP+概率DP+容斥原理
CTS2019&APIO2019爆炸记
[LOJ3119][CTS2019|CTSC2019]随机立方体:组合数学+二项式反演
奇数与偶数的指数生成函数
[LOJ6433][PKUSC2018]最大前缀和:状压DP
热门文章
生成函数的背包计数问题
[LOJ2538][PKUWC2018]Slay the Spire:DP
[洛谷P5361][SDOI2019]热闹又尴尬的聚会:构造题
[VIJOS2053][SDOI2019]世界地图:最小生成树+虚树
退役前的做题记录2.0
[VIJOS2055][SDOI2019]移动金币:DP+组合数学
[LOJ3046][ZJOI2019]语言:树链的并+线段树合并
[LOJ3109][TJOI2019]甲苯先生的线段树:DP
[LOJ3106][TJOI2019]唱、跳、rap和篮球:DP+生成函数+NTT+容斥原理
SXOI2019垫底记