调用execv时,到父进程的stdin被阻止

stdin to parent process blocked when calling execv

本文关键字:stdin 进程 execv 调用      更新时间:2023-10-16

我创建了一个应用程序,该应用程序使用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。一旦启动,这些流程实际上不需要对彼此有任何概念。

谢谢!

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