LINUX.ORG.RU

fork + popen = хрень какаято :(


0

0

ЗДраствуйте.

Приложение открыло pipe, форкнулось. У ребенка один конец pip'а для записи , у родителя для чтения. Ребенок каждые там 10 сек посылает что он жив и все ок. Далее ребенок пробует открыть popen'ом и прочитать из вывод другого бинарника.

В резалте оно падает.

Собсно хоца узнать, из за чего падает(ИЛИ МОЖЕТ ПАДАТЬ). Может быть сигналы какие то нельзя обрабатывать, или что то использовать? Или pipe нельзя открывать?

Маны читал в popen'e ничего не сказанно что что то нельзя делать.

Спасибо.

★★★

>Далее ребенок пробует открыть popen'ом и прочитать из вывод другого бинарника.

Это на каком языке предложение? :)

klon
()
Ответ на: комментарий от klon

=) Извиняюсь за сумбурность. Имеется ввиду, что порожденный процесс использует системную ф-цию popen для запуска другого процесса.

fura13 ★★★
() автор топика
Ответ на: комментарий от klon

В каком месте падает? Что говорит gdb?

Попробуй без лишних форков, просто на тестовом примере...

klon
()

Телепаты в отпуске.

Как простая гадалка, скажу, что, скорее всего, прибивается сигналом SIGPIPE (broken pipe). Попробуй его проигнорировать (и в папе тоже).

Die-Hard ★★★★★
()
Ответ на: комментарий от anonymous

popen - это функция, которая,в частности помимо всего прочего, сама дергает fork и даже потом exec

Nesk
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.