我正在尝试在Linux上的dup2。我的测试程序是:我打开一个管道,尝试复制stdin到fifo写入,dup stdout到fifo读取,我希望当我运行这个程序时,stdin被写入fifo,并且fifo自动将内容转储到标准输出:linux dup2 doens似乎与管道工作?
#include<stdio.h>
#include<unistd.h>
int main(){
int pipefd[2];
pipe(pipefd);
int& readfd=pipefd[0];
int& writefd=pipefd[1];
dup2(STDIN_FILENO,writefd);
dup2(STDOUT_FILENO,readfd);
char buf[1024];
scanf("%s",buf);
return 0;
}
我运行这个程序,没有看到额外的标准输出。我的问题:
(1)我的stdin“scanf”被写入fifo writefd吗?
(2)如果是,是否可以将内容自动定向到我的控制台输出?如果不是如何解决它?