Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Ну это технически в Windows не так сложно. При запуске чайлда можно передать ему ID родителя(ну хотя бы через командную строку, кстати, отсутствие его в командной строке будет тем самым означать, что что чайлд запущен не этим родителем, а как-то иначе ), а чайлд по нему получит hParentProcess в контексте чайлда и будет в потоке WaitForSingleObject.
PD>Наверняка в Linux есть аналогичное, а может, в нынешней C++ есть и кроссплатформенное решение.
Если и есть, то на уровне какого-то очень advanced API. Не проще ли разбираться с проблемой там, где она возникает — если в pipe не получается писать, то как-то разумно на это реагировать?
PD>Может, дождавшись, больше и не писать. Может с помощью freopen на свой stdout перенаправить его куда-то еще.
freopen работает с FILE*, на которую ссылается глобальная переменная stdout. Реально надо переоткрывать handle, а не трогать структуру, на которую ссылается stdout. Например потому, что не все для записи на консоль используют именно stdio.