我正在嘗試在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)如果是,是否可以將內容自動定向到我的控制檯輸出?如果不是如何解決它?