Как прочитать промежуточные результаты команды exec параллельно, в то время как выполнение команды exec происходит в C? - PullRequest
1 голос
/ 14 августа 2010

Я должен выполнить любую другую программу из моей программы на C, которая непрерывно дает сообщения (промежуточный результат) на stdout. Эти сообщения (промежуточный результат) я могу получить после того, как exec завершит свое выполнение (другая программа завершится), но моя проблема заключается в том, что если происходит выполнение команды exec, то как получить эти сообщения (промежуточный результат) построчно? На основании этих промежуточных результатов я должен предоставить некоторые входные данные для выполнения команды exec (предоставить входные данные для другой программы), как это сделать?

Ответы [ 2 ]

4 голосов
/ 14 августа 2010

popen (3) запустит программу, вернув вам FILE*, которую вы можете использовать, чтобы прочитать вывод процесса.

3 голосов
/ 14 августа 2010

См. труба (2) .Используйте дескриптор входного файла для stdin дочернего процесса, который вызывает exec.

Чтобы переместить дескриптор файла, выполните

dup2( my_pipe[0], stdin);

в дочернем элементе после вилки.

Или используйте popen (3) , как предлагает Чао.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...