1

stdout をファイルにリダイレクトするコード (ls の結果がファイルに返されるなど) を書いていますが、dup2() 関数は出力をリダイレクトしません。これが私が持っているコードです:

void testDup()
{
    int newft;
    if(newfd = creat("fout.txt", O_TRUNC|O_WRONLY) == -1)
    {
        cout << "Open failed"<< endl;
        exit(1);
    }
    dup2(newfd, 1);
    cout << "this should be in the new file" < endl;
}

そして、これは機能しません。ls の出力を端末ウィンドウに表示するだけです。dup2() が実際に -1 ではなく 1 を返したことを確認するための手順を実行しました。

4

1 に答える 1