Site icon EfmSoft

Что означает код errno 36 (EINPROGRESS)?

 
Также может означать:
КонстантаТипОС
ERROR_SHARING_BUFFER_EXCEEDEDОшибка WindowsWindows
KERN_NOT_DEPRESSEDКод возврата ядра macOSmacOS
ippStsNotSupportedCpuСтатус Intel IPPЛюбая
ENAMETOOLONGerrnoLinux
EIDRMerrnoSolaris
EDEADLKerrnoWindows
NTFS_FILE_SYSTEMКод BSODWindows
Предыдущий Следующий
ENAMETOOLONG EIDRM

EINPROGRESS

Ожидающая операция, а не завершённое соединение

EINPROGRESS — ожидаемый промежуточный результат, когда неблокирующая операция с сокетом не может завершиться немедленно. Для попытки подключения он означает, что ядро приняло запрос и сокет всё ещё проходит установление соединения; код не означает, что другая сторона приняла соединение.

Рассматривайте этот результат как переход состояния. Повторение connect() в тесном цикле может заменить полезные данные кодом EALREADY или скрыть окончательный результат. Дождитесь механизма готовности, используемого приложением, затем прочитайте ожидающую ошибку сокета через getsockopt(..., SO_ERROR, ...) и только после этого объявляйте успех.

Что сохранить для диагностики

Не путайте с другими кодами

EALREADY означает, что на том же объекте уже ожидает другая операция; EISCONN означает, что у сокета уже есть подключённая другая сторона. Из этих трёх кодов только EINPROGRESS обычно описывает первое наблюдаемое ожидающее состояние.

Ссылки


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

Exit mobile version