| Предыдущий | Следующий |
| ENOTBLK | ENOTBLK |
ENOTBLK
ENOTBLK в Darwin
В Darwin значение 15 (ENOTBLK) означает: интерфейсу, специфичному для Darwin, требуется блочное устройство. Операции требуется специальное блочное устройство, но переданный путь или vnode имеет другой тип файла.
Что зафиксировать
| Сведения | На какой вопрос отвечают |
|---|---|
| Путь, режим stat, старший и младший номера устройства, точка монтирования, операция и идентификатор песочницы. | Связывают требование блочного устройства с конкретным действующим объектом API, а не только с переведённым сообщением. |
| Darwin errno и версия SDK/XNU. | Показывают, возникла ли ошибка в ABI вызывающей стороны, оболочке или поставщике. |
| Результат первого системного вызова или ioctl, а также процесс, поток и экземпляр объекта. | Сохраняет errno до его перезаписи. |
| Контрольный объект той же сборки macOS. | Даёт контрольное сравнение на той же платформе. |
Контрольная проверка
- Сравните с настоящим блочным устройством, открытым с документированными привилегиями. Изменившийся errno после теста означает новую границу, а не другую формулировку исходной ошибки.
- Немедленно сохраните errno и сравните связанное возвращаемое значение. После контроля повторите исходную операцию, чтобы результат оставался относящимся к требованию блочного устройства.
- Повторите тест с одним контролируемым объектом, сохранив идентификатор и песочницу без изменений. Во время проверки не меняйте двоичный файл, ABI заголовков и поставщика.
Исправление
Проверяйте тип файла до операции и используйте интерфейс устройства, предназначенный для современной macOS.
Технические ссылки
- Apple XNU: errno. h — определяет используемое пространство статусов.
- Apple: ошибки системных вызовов intro(2) — описывает границу API или жизненного цикла.
- Apple OSS: исходный код XNU — предоставляет контекст ABI, реализации или протокола.
- The Open Group: errno. h — определяет ограничения переносимости и проверки.
Нужно найти другой код? Найти другой код состояния или ошибки.