| Предыдущий | Следующий |
| EISNAM | ENODATA |
EPROTONOSUPPORT
Отсутствует реализация протокола
EPROTONOSUPPORT указывает на проблему поддержки протокола. Solaris сообщает, что протокол не настроен в системе или его реализация отсутствует. POSIX дополнительно связывает ошибку из socket() с ненулевым значением протокола, которое не поддерживается семейством адресов или реализацией.
Это более узкая ошибка, чем EAFNOSUPPORT, который отклоняет семейство адресов, и отличается от EPROTOTYPE, где протокол существует, но не может обеспечить запрошенную семантику сокета. Это различие помогает диагностировать жёстко заданные номера протоколов и неверные тройки домен, тип и протокол.
Проверки выбора протокола
- Сохраните все три аргумента
socket(domain, type, protocol); диагностика только по номеру протокола теряет контекст совместимости. - Если явно указан ненулевой протокол, убедитесь, что выбранное семейство адресов определяет его и реализация его предоставляет.
- Предпочитайте константы протоколов из заголовков платформы скопированным числовым значениям, особенно в кроссплатформенном коде.
Ссылки
- Oracle Solaris: каталог errno intro(2)
- POSIX: правила domain, type и protocol для socket()
- POSIX Issue 8: errno.h
Нужно найти другой код? Найти другой код состояния или ошибки.