Записать в файл с C ++ dup2 - PullRequest
       5

Записать в файл с C ++ dup2

1 голос
/ 18 октября 2011

Хорошо, я пытаюсь читать из одного файла и писать в другой.

У меня есть другие вещи, такие как получение информации из первого файла, но для тестирования я пытаюсь записать ее во второй файл.

Насколько я понимаю, все после dp2() вызов будет выводить на второй параметр.Правильно?

    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);

    }

1 Ответ

0 голосов
/ 18 октября 2011

Во-первых, я не уверен, что привело вас к мысли, что вам нужно использовать dup2(). Не используйте это здесь, это не нужно и будет делать неправильные вещи.

Во-вторых, чтобы записать вывод в низкоуровневый дескриптор файла, используйте write():

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

Не забудьте close(file2), когда закончите.

...