void print_tree(tree_node *thestruct,int* fd,int numKids)
{
FILE *fo = freopen("output2.txt","w",stdout);
printf("%s",thestruct->line);
fflush(stdout);
int i = 0;
char buff[20];
for(i=1; i < numKids+3; i++)
{
bzero(buff,20);
close(fd[2*i+1]);
read(fd[2*i], buff, 20);
close(fd[2*i]);
printf("%s",buff);
fflush(stdout);
}
}
基本上在这行代码中我试图在进程之间进行管道时从读写中打印缓冲区。但是最后一个打印语句没有打印到文件,而是打印到stdout?我也尝试过使用fprintf,最后一个打印语句仍然是
mgl70@ece29:~/ComputerSystems$ ./a.out processTree
D 0
当我想要运行可执行文件时终端中的
D 0
打印到文件
这是写
else{//child process stuff
close(fd[2*procNum]);
char* line = strdup(initNode->line);
write(fd[2*procNum+1],line,20);
}