如何执行./process 2>& 1 |带execvp的tee log.txt

时间:2014-03-06 10:57:26

标签: c logging process execvp

我尝试编写一个过程控制器。每次失败时都应该重新启动它。通常我使用以下终端命令启动该过程:

./process 2>&1 | tee log.txt

现在我想用execvp执行此命令:

int main() {
    int status;

    while(1) {
        pid = fork();
        char* const argv[4] = {"2>&1", "tee", "log.txt", NULL};

        if(pid == 0) {
            // make child process to ./process
            if(execvp("./process", argv) {
                perror("execvp");
                exit(1);
            }
        }
        else if(pid > 0) {
            sleep(3);
            // wait for ./process to return
            waitpid(pid, &status, 0);
        }
    }
}

此示例程序不会失败并且./process启动但2>&1 | tee log.txt未执行或至少未显示日志文件。

有什么建议吗?

0 个答案:

没有答案
相关问题