| Предыдущий | Следующий |
| EL2NSYNC | ENOTEMPTY |
ENAMETOOLONG
Что означает ENAMETOOLONG в Windows UCRT
ENAMETOOLONG означает «Имя файла слишком длинное». Для условия «Имя файла слишком длинное» код ENAMETOOLONG нужно связывать с первым возвратившим его вызовом и контекстом: путь, дескриптор, тип объекта, права и состояние файловой системы.
Для условия «Имя файла слишком длинное» сначала установите канал ошибки: UCRT использует errno, Win32 API — GetLastError(), а Winsock — WSAGetLastError(); эти значения не взаимозаменяемы. Для ENAMETOOLONG исходная английская страница также выделяет MAX_PATH и UNC; эти данные полезно записать вместе с return value, потоком и временем события.
Диагностика
- При ошибке «Имя файла слишком длинное» (Windows UCRT,
ENAMETOOLONG) проверьте каждый компонент пути, фактический root/namespace, владельца, mode, ACL и параметры монтирования. - При ошибке «Имя файла слишком длинное» (Windows UCRT,
ENAMETOOLONG) установите, относится ли отказ к конечному объекту, родительскому каталогу, дескриптору или промежуточной ссылке. - При ошибке «Имя файла слишком длинное» (Windows UCRT,
ENAMETOOLONG) запишите flags и mode исходного вызова: open, create, rename и unlink проверяют разные условия. - При ошибке «Имя файла слишком длинное» (Windows UCRT,
ENAMETOOLONG) не выдавайте широкие права до определения конкретной недостающей возможности.
На платформе Windows UCRT исправление ENAMETOOLONG считается подтверждённым, когда исходная операция даёт ожидаемый результат, а отдельный отрицательный тест по-прежнему воспроизводит именно условие «Имя файла слишком длинное» без утечки ресурсов и потери первичной диагностики.
Ссылки для ENAMETOOLONG
- Microsoft: errno constants
- Microsoft: naming files, paths, and namespaces
- Microsoft: maximum path length limitation
Нужно найти другой код? Найти другой код состояния или ошибки.