| Предыдущий | Следующий |
| EPROTONOSUPPORT | EREMOTEIO |
ENODATA
Что означает ENODATA в Windows UCRT
ENODATA: Данные отсутствуют при неблокирующем вводе-выводе. Для неблокирующего STREAMS/message interface сейчас нет данных; это не обязательно EOF и не доказательство разрыва канала.
В Windows UCRT сначала зафиксируйте, какой слой выдал ошибку: errno, Win32 GetLastError и Winsock WSAGetLastError являются разными каналами и не должны подменять друг друга. Полезные технические маркеры из контекста этой ошибки: UCRT, POSIX, API, Ucrt, ABI. Записывайте их фактические значения или режимы, а не только символическое имя errno.
Диагностика
- Проверьте, что descriptor действительно принадлежит ожидаемому stream layer и не был переиспользован после close.
- Запишите тип message/STREAMS endpoint, размер доступных данных и режим blocking непосредственно перед вызовом.
- Сохраняйте position/queue state до retry, потому что повтор может изменить границу сообщения или скрыть исходный сбой.
- Для Windows сопоставьте CRT descriptor с нативным handle/socket и проверьте, что объект не был закрыт или переиспользован до чтения кода ошибки.
Ссылки
- Microsoft: errno constants
- Microsoft: _get_errno
- Microsoft: _doserrno and errno
- The Open Group: errno.h
Нужно найти другой код? Найти другой код состояния или ошибки.
