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