Мой вопрос является расширением этого: popen создает дополнительный процесс sh
Мотивы:
1) В моей программе необходимо создать дочернего элемента, который выполняет tail
в файле.Мне нужно обрабатывать вывод построчно.Вот почему я использую popen
, потому что он возвращает FILE *.Я могу легко получить одну строку, сделать то, что мне нужно, и распечатать ее.
Одна проблема с popen заключается в том, что вы не получаете pid child (команда tail в моем случае).
2) Моя программа не должна завершаться, пока не завершится ее дочерний процесс.Поэтому мне нужно сделать wait
;но без pid я не могу этого сделать.
Как мне достичь обеих целей?
Возможное (kludge) решение: выполните execvp ("tail -f file> tmpfile") и продолжайте чтение этого tmpfile.Я не уверен, насколько хорошо это решение.