如何解决工控机使用管道,ABC
有一个过程叫做 A,B,C。
我想要A->B->C
A:父进程 B:子进程 c:孙子孙女
打开A中的文本文件
打开文本文件并将其移动到 A 到 B 到 C。 C 的输出。
然而,没有输出结果出现。
有什么问题吗?
int main(int argc,char *argv[])
pwstream=fdopen(ppipe[1],"w");
prstream=fdopen(ppipe[0],"r");
pid_t pid;
pid_t qpid;
pid=fork();
if(pid>0){ //parent
fclose(prstream);
while(!stat){
if(fgets(line,BUFFER_SIZE,fpin)){
fputs(line,pwstream); //to pipe
}
else{
stat=feof(fpin);
}
}
fclose(fpin);
fclose(pwstream);
wait(&status);
qpid=fork();
if(qpid>0){ //grandchild
fclose(pwstream);
printf("grand chlid\n");
while(!stat){
if(fgets(line,prstream)){
fputs(line,stdout);
}
}
fclose(prstream);
}
}
else if(pid==0){ //child
while(!stat){
if(fgets(line,prstream)){
for(int i=0;line[i];i++){
line[i]=toupper(line[i]);
}
fputs(line,pwstream);
}
else{
stat=feof(prstream);
}
}
fclose(prstream);
fclose(pwstream);
printf("bye\n");
exit(22);
}
else{
printf("error\n");
}
return 0;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。