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