Допустим, я создал процесс PO через popen
(ТОЛЬКО ЧИТАТЬ) из процесса PA. Затем я pclose()
труба на стороне ПА.
На стороне ПО, как определить, доступен ли stdout без выполнения write()
?
Обратите внимание, что я пытался поймать SIGPIPE на стороне ПО, но безрезультатно.
ОБНОВЛЕНО : я пытался использовать fstat(1, &buf)
безуспешно.
ОБНОВЛЕНО : Причина, по которой мне нужно обнаружить это состояние с помощью PO, не имеет доступа к PID PO с PA (и, следовательно, не может его убить). Кроме того, я хотел бы, чтобы ПО было более устойчивым к неудачам ПА, то есть к самому выходу.
РАЗРЕШЕНИЕ : я пошел вперед и использовал socketpair
, fork
. Попытка контролировать процесс через popen
оказалась кошмаром (по крайней мере для меня). Большое спасибо всем, кто внес свой вклад!