- 论坛徽章:
- 1
|
本帖最后由 asker160 于 2017-03-08 18:42 编辑
我尝试把一个pipe和stdin/stdout连接起来,我希望stdin输入的东西被写入到pipe的write端,然后pipe的read端自动把内容dump到控制台。程序如下:
#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;
}
编译运行这个程序,除了scanf能接受输入以外,没有什么其他的控制台输入了。
我的问题:
1. 我的两个dup2是否真的把控制台I/O重定向到了pipe
2. 如果是,那么我scanf输入的内容,有没有到pipe里面,pipe的读端有没有自动关联到stdout并打印出来?
我的程序该怎么改呢?
谢谢。
|
|