调用execv时stdin到父进程被阻塞

时间:2012-03-18 03:58:21

标签: c++ fork stdin execv

我创建了一个使用forkexecv启动一些子进程的应用程序。

string process;  //initialized before execv call
char** process_args;  //initialized before execv call
int pid = fork();
if(pid == 0) {
    execv(process.c_str(), process_args);
}

流程启动,但它们会阻止父级访问STDIN,直到每个孩子退出。我希望父进程在子进程仍在运行时可以访问STDIN

这是可能的,如果可以的话 - 怎么样?我不必使用execv。一旦启动,这些过程就不需要彼此有任何概念。

谢谢!

1 个答案:

答案 0 :(得分:0)

STDIN之前关闭孩子的exec*()