Появился отдельный вид ошибки для исчерпания списка открытых файлов

25.06.2026

У вида ошибки ввода-вывода добавлено значение для случая, когда система не даёт открыть новый файл: кончился предел дескрипторов или памяти ядра под файловые структуры.

Какая была проблема

Раньше этот случай попадал в общую категорию «прочие ошибки». Чтобы отличить нехватку дескрипторов от любой другой ошибки, код должен был обратиться к исходному номеру ошибки и сравнить его с платформенной константой — а такая константа в коде отсутствует, она живёт в заголовках, и её надо искать.

То есть переносимый код определить этот случай не мог вообще: на одной системе константа одна, на другой — другая, и обе зависят от того, как система сообщает об ошибке.

Что даёт

Проверка через сравнение вида ошибки, работающая одинаково везде. Это позволяет, например, отличить «файлов не осталось, подождите» от «нет прав» и не пытаться повторять попытку.

Оригинал

add io::ErrorKind::TooManyOpenFiles

Упоминаний: 1 · Просмотров: 3