fprintf将最后的打印声明打印到标准输出

时间:2018-03-09 20:56:01

标签: c printf fopen freopen

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);
  } 

0 个答案:

没有答案