| Предыдущий | Следующий |
| ETIMEDOUT | ENODATA |
ENOSTR
ENOSTR — значение errno Solaris 60. Solaris документирует его для putmsg() или getmsg() , когда переданный файловый дескриптор не связан с устройством STREAMS. Ошибка является несоответствием дескриптора и интерфейса, а не сообщением о временно пустом потоке.
Проверьте идентичность и время жизни дескриптора
Проследите, где дескриптор был открыт и какой процесс или поток владеет им в момент завершившегося ошибкой вызова. Особенно важно повторное использование дескрипторов: после закрытия то же целое число может позднее указывать обычный файл, сокет, канал или другое устройство. Передача такого повторно использованного значения API сообщений STREAMS может вызвать ENOSTR , хотя ранее этот номер дескриптора указывал поток.
Проверьте настройку устройства и модулей, ожидаемую приложением, до изменения обработки очередей STREAMS. Если программе нужен только байтовый ввод-вывод, read() или write() может быть правильным интерфейсом; если ей требуются управляющая и информационная части STREAMS, дескриптор должен быть получен от правильной конечной точки STREAMS. ENODATA описывает состояние доступного интерфейса без сообщения и не должно путаться с этим несоответствием типа.
Ссылки
- Oracle Solaris intro(2): ENOSTR
- Руководство Oracle Solaris по программированию STREAMS
- illumos errno.h
Нужно найти другой код? Найти другой код состояния или ошибки.