【发布时间】:2017-03-04 12:09:27
【问题描述】:
我在 linux 上尝试 dup2。我的测试程序是:我打开一个管道,尝试dup stdin到fifo写入,dup stdout到fifo读取,我希望当我运行这个程序时,stdin被写入fifo,fifo自动将内容转储到stdout:
#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) 我的标准输入“scanf”是否被写入 fifo writefd?
(2) 如果是,是否可以将内容自动定向到我的控制台输出?如果不行怎么解决?
【问题讨论】:
标签: linux redirect input pipe dup2