Информация об изменениях

Сообщение Re[3]: Отмена перехвата консоли дочернего процесса от 18.01.2026 14:40

Изменено 18.01.2026 14:47 Pavel Dvorkin

Re[3]: Отмена перехвата консоли дочернего процесса
Здравствуйте, Sinclair, Вы писали:

S>Из того, что я понял в рассуждениях ИИ, дочерний процесс должен как-то отловить момент окончания родительского, и переоткрыть stdout для продолжения работы.


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

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

>По идее, если у него есть способ узнать, что выход закрыт, то он может просто больше ничего не писать в stdout.


Может, дождавшись, больше и не писать. Может с помощью freopen на свой stdout перенаправить его куда-то еще.
Re[3]: Отмена перехвата консоли дочернего процесса
Здравствуйте, Sinclair, Вы писали:

S>Из того, что я понял в рассуждениях ИИ, дочерний процесс должен как-то отловить момент окончания родительского, и переоткрыть stdout для продолжения работы.


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

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

>По идее, если у него есть способ узнать, что выход закрыт, то он может просто больше ничего не писать в stdout.


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