Если другой поток сделал close () для единственного открытого дескриптора, он становится более интересным, но мне нужно увидеть простую версию кода, чтобы увидеть, действительно ли что-то не так.

о поведениеselect(2) функция, когда дескриптор файла, который он наблюдает для чтения, закрыт другим потоком?

После некоторого беглого тестирования он сразу возвращается. Я подозреваю, что результат либо в том, что (а) он все еще продолжает ждать данные, но если вы действительно попытаетесь прочитать их, вы получите EBADF (возможно - есть потенциальная гонка), или (б) что он притворяется, будто дескриптор файла никогда не передавался. Если последний случай равен true, передача одного fd без тайм-аута вызовет тупик, если он был закрыт.

Ответы на вопрос(0)

Ваш ответ на вопрос