Я пишу код для перенаправления 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.