以下のコードで
int main ()
{
printf ("dup2 example!\n");
int myfd= creat ( "./etest.txt", 777);
dup2(myfd, 1);
printf("i am in output file!\n" );
dup2(1,1);
printf("i am in STDOUT!" );
return 0;
}
2 つの dup2 呼び出しがあります。最初のものは、o/p を stdout から自分のファイルにリダイレクトします。これはうまくいきます。次に、それをリダイレクトして再びスタウドに戻したいのですが、2番目のdup2はそれを変更せず、「私はSTDOUTにいます!」ファイルに印刷されます。私のコードの何が問題なのですか?