は、私はファイルディスクリプタ標準出力のファイル記述子を復元するには?
を理解する助けが必要だからここに私のコードです:、私はむしろ、標準出力よりもtxt
ファイルにprintf
の出力をリダイレクトしようとした上記のプログラムで
int main()
{
char ch;
close(1);
//now opening a file so that it gets the lowest possible fd i.e. 1
int fd=open("txt",O_RDWR);
//check..
printf("first printtf is executed\n");
scanf("%c",&ch);
printf("ur value is %c\n",ch);
printf("second printf is executed\n");
return 0;
}
、ターミナル。 しかし、再び端末のみに出力を与えるべき二printtf
すなわち第2のケースのために通常通りに動作しprintf
ように..複製することになり、これを行うために
DUP()するとき - それをINGのは、「バック」あなたが複製するdup2のを使用する必要がありますファイル記述子__on__は以前に開いて閉じた '1'です。 – Eregrith
もしあなたがfdを閉じてもdupはやっていないでしょうか? (dup2を調べるのに便利なマニュアルページはありません) – John3136
まあ、おそらくdup()は1にダップします...私は試しが必要だと思います! – Eregrith