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