Re[4]: Отмена перехвата консоли дочернего процесса
От: Pzz Россия https://github.com/alexpevzner
Дата: 18.01.26 18:20
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Ну это технически в Windows не так сложно. При запуске чайлда можно передать ему ID родителя(ну хотя бы через командную строку, кстати, отсутствие его в командной строке будет тем самым означать, что что чайлд запущен не этим родителем, а как-то иначе ), а чайлд по нему получит hParentProcess в контексте чайлда и будет в потоке WaitForSingleObject.


PD>Наверняка в Linux есть аналогичное, а может, в нынешней C++ есть и кроссплатформенное решение.


Если и есть, то на уровне какого-то очень advanced API. Не проще ли разбираться с проблемой там, где она возникает — если в pipe не получается писать, то как-то разумно на это реагировать?

PD>Может, дождавшись, больше и не писать. Может с помощью freopen на свой stdout перенаправить его куда-то еще.


freopen работает с FILE*, на которую ссылается глобальная переменная stdout. Реально надо переоткрывать handle, а не трогать структуру, на которую ссылается stdout. Например потому, что не все для записи на консоль используют именно stdio.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.