Кроме того, что другой конец закрыт, на конце записи канала нет никаких ошибок, которые могли бы быть обнаружены epoll.Несколько ошибок, которые возможны при реальном вызове write (), не могут быть известны заранее (например, если вы передаете недопустимый указатель буфера), поэтому epoll не может их обнаружить.Поэтому, если epoll сообщает, что есть ошибка, это EPIPE.
(ОК, на самом деле существует другое возможное условие ошибки, но оно может быть вызвано только ошибкой программирования: если вы закроете дескриптор файла, а затемиспользуйте epoll_wait, пока он есть в списке - я не знаю, как epoll отреагирует на это).