1

了解しました。あるファイルから読み取り、別のファイルに書き込もうとしています。

最初のファイルから情報を取得するなど、他に追加するものがありますが、テストのために、2番目のファイルに書き込もうとしています。

私の理解では、dp2()呼び出しの後のすべてが2番目のパラメーターに出力されます。右?

    using namespace std;
    using std::string;
    using std::ostream;
    using std::endl;
    string str;



    int main(){


    int file= open("./input.txt", O_CREAT | O_RDWR | O_APPEND, S_IRUSR | S_IWUSR);
        if(file==-1){
            cout<<"Error: "<<errno<<endl;
        }
    int file2= open("./output.txt", O_CREAT | O_RDWR | O_APPEND, S_IRUSR | S_IWUSR);
        if(file2==-1){
            cout<<"Error: "<<errno<<endl;
        }

    int retval = dup2(file,file2);
        if(retval == -1){
        cout<<"Error: "<<errno;
        }

    printf("yeah");


    close(file);

    }
4

1 に答える 1

0

まず、使用する必要があるとあなたが信じた理由がわかりませんdup2()。ここでは使用しないでください。不要であり、間違ったことをします。

次に、出力を低レベルのファイル記述子に書き込むには、次を使用しますwrite()

write(file2, "yeah\n", 5);

使い終わったら忘れないでくださいclose(file2)

于 2011-10-18T04:53:33.233 に答える