printf打印所有字符串以输出

时间:2017-09-01 10:30:22

标签: c linux unix pipe dup

#include<stdio.h>
#include<unistd.h>

int main(){
    int fd[2];
    int old = dup(1);
    char buf[10];
    pipe(fd);       
    dup2(fd[1],1);
    printf("Don't Print!\n");
    dup2(old,1);
    printf("Hello World!\n");
    return 0; 
}

在上面的C代码中,“不打印”也会打印出来。

  

DUP2(FD [1],1)

设置管道的默认输出。所以printf应该写入输出,在这种情况下是输出。

  

DUP2(旧,1)

如果删除它,则屏幕上不会打印任何内容,但是当我包含它时,两个字符串都会打印到屏幕上。有人可以在我的代码中指出错误。

0 个答案:

没有答案