Что означает код errno 86 (ESTRPIPE) в Linux?

 
Также может означать:
КонстантаТипОС
ERROR_INVALID_PASSWORDОшибка WindowsWindows
EBADARCHerrnomacOS
ELIBMAXerrnoSolaris
INSTRUCTION_COHERENCY_EXCEPTIONКод BSODWindows
Предыдущий Следующий
ELIBSCN EBADARCH

ESTRPIPE

Что означает ESTRPIPE

ESTRPIPE исторически означает ошибочное состояние STREAMS pipe. В современном Linux этот errno встречается редко и обычно приходит из узкой подсистемы, драйвера или слоя совместимости. Его нельзя автоматически приравнивать к EPIPE: одинаковое слово «pipe» не означает одинаковый контракт восстановления.

Что проверить

  • Зафиксируйте системный вызов или библиотечную функцию, которая непосредственно вернула ESTRPIPE, и сохраните errno до следующего вызова.
  • Определите, есть ли в пути STREAMS-совместимый интерфейс, драйвер или адаптер, который мог преобразовать собственное состояние в этот errno.
  • Сохраните descriptor, состояние очереди и событие, предшествовавшее ошибке; без этого код сам по себе слишком мало говорит о причине.

Как действовать

Следуйте правилам восстановления именно той подсистемы, которая вернула errno. Повтор допустим только после изменения состояния потока или если документация компонента прямо называет состояние временным. Бесконечный retry на том же descriptor обычно лишь воспроизводит исходное состояние.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.