stdin к родительскому процессу заблокирован при вызове execv - PullRequest
0 голосов
/ 18 марта 2012

Я создал приложение, которое запускает пару дочерних процессов, используя fork и execv.

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 голосов
/ 18 марта 2012

Закройте STDIN ребенка до exec*().

...