В C как вы перенаправляете stdin / stdout / stderr на файлы при выполнении execvp () или аналогичного вызова?

У меня есть следующий код:

pid_t pid = fork();
if (pid == -1)
{
    // ...
}
else if (pid == 0)
{
    stdin = someopenfile;
    stdout = someotherfile;
    stderr = somethirdopenfile;
    execvp(args[0], args);
    // handle error ...
}
else
{
    // ...
}

Проблема в том, что ввод / выводexecvp() вызов по-прежнему консоль, а не файлы. Очевидно, я делаю что-то не так, как правильно это сделать?

Ответы на вопрос(3)

Ваш ответ на вопрос