In C, wie Sie umleiten von stdin/stdout/stderr in Dateien wenn Sie eine execvp() oder ähnliches aufrufen?

Ich habe den folgenden code:

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

Das problem ist, die Eingabe/Ausgabe von der execvp() nennen ist noch die Konsole, anstatt die Dateien. Klar, ich mache etwas falsch, was ist der richtige Weg, dies zu tun?

InformationsquelleAutor der Frage Matt | 2013-01-27

Schreibe einen Kommentar