| Предыдущий | Следующий |
| ENOMSG | EUNATCH |
ENOPROTOOPT
Поиск параметра завершился ошибкой до сетевого обмена
ENOPROTOOPT обычно означает недоступность параметра протокола. Наиболее полезно записывать его вместе с точными аргументами getsockopt() или setsockopt(): дескриптором, уровнем параметра, именем параметра, размером буфера, семейством и типом сокета.
Имя параметра не имеет глобального смысла. Одно числовое значение может означать другое на ином уровне протокола, а параметр, поддерживаемый одним семейством сокетов, может быть недоступен для другого. Проверка платформы во время сборки не доказывает, что сокет во время выполнения обладает теми же возможностями.
Отделяйте доступность параметра от поддержки операции
ENOPROTOOPTотносится к поиску или применению конкретного параметра протокола на определённом уровне.EOPNOTSUPPимеет более широкий смысл: операция, флаг или тип сокета не поддерживает запрос вызывающей стороны.EPROTONOSUPPORTвозникает раньше, когда сам протокол нельзя использовать с выбранным семейством.
Практические проверки
Сохраняйте в журналах символьные и числовые значения уровня и параметра, а не только переведённую подпись. Затем сверяйте параметр с целевым SDK macOS и фактическим семейством сокета. Повторение того же нераспознанного параметра не изменит его доступность.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.