私はLinuxでdup2を試していました。私のテストプログラムは次のとおりです:私はパイプを開き、FIFOへの標準入力にdupを書き込んだり、FIFOへのdup stdoutを読み込んだり、このプログラムを実行するとstdinがfifoに書き込まれ、fifoは自動的にstdoutに内容をダンプします。linux dup2はパイプで動作しませんか?
#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)該当する場合は、コンテンツをコンソール出力に自動転送できますか?それを修正する方法でない場合は?