Я пишу программу для Linux на C, и я хотел бы подождать (используя select или poll ), чтобы дескриптор файла канала сломался, например, Я бы хотел дождаться момента, когда последующая запись (2) вернет EPIPE (или будет отправлен SIGPIPE). Добавление файлового дескриптора к аргументу writefds или исключениемfds для select не решает проблему. Я знаю, что могу решить эту проблему путем создания нескольких процессов или потоков, но в этом вопросе меня интересуют только однопроцессные однопоточные решения, предпочтительно включающие select и poll (потому что я хочу ждать и других событий файлового дескриптора). Я не могу предположить, кто находится на другом конце канала - решение должно работать, если эти процессы находятся далеко в дереве процессов.
Я бы предпочел решение, которое переносимо во многих системах Unix (не только в Linux).