EOF
на самом деле не "отправляется". Это событие, когда ваш процесс вызывает системный вызов read
и возвращает 0
, что для каналов происходит, когда другой конец канала закрыт (всеми процессами, у которых он есть, если файловый дескриптор дублируется).
Ядро всегда будет закрывать всефайловые дескрипторы при завершении процессов.
Обойти это невозможно (даже файловые дескрипторы SIGKILL-процессов закрываются). Если какой-либо из этих файловых дескрипторов является последней ссылкой на конец записи файлового дескриптора конвейера, следующее чтение
в соответствующем конце чтения вернет 0, что stdio
будет интерпретировано как EOF.
.