ntkt
@ntkt
Потомственный рыцарь клавиатуры и паяльника

Сравнительная таблица кодов и расшифровок errno для различных юниксов?

Дамы и господа, потерял я недавно одну очень удобную штуку :(


А именно — таблицу, в которой были сведены воедино распространенные коды системных ошибок с расшифровками (из errno.h) для самых ходовых *nix-совместимых осей — Linux, BSD, AIX, Solaris, HP-UX как минимум.


Попытки загуглить ее ни к чему не привели, что заставляет задуматься о собственной вменяемости, профпригодности и т.п.


Ценность такой таблицы в том, что стандарт POSIX задает только символьные имена-аббревиатуры ошибок (ENOMEM, типа), а не коды, которые различаются от оси к осе. А масса разборчивого в друзьях ПО выдает в логах не расшифровку и даже не символьный код, а тупо числовой код…

Разбирая на изолированной станции гиговую пачку логов инцидента с сильно гетерогенной связки ПО на разных осях, без такой таблицы перед глазами приходится совершать много лишних движений. Типа, увидел 79 — а пока читаешь лог, сиди вспоминай, что на AIX это Connection Refused, когда на соляре и линухе Connection Refused это 146, а на хпуксе — 239.


Естественно, всегда можно найти в сети errno.h от каждой из нужных осей, распарсить, свести воедино, проверить на примерах и отредактировать, но это работа не на один час, а данная чудо-табличка уже была с авторскими комментариями, отформатированная и т.д., и даже влезала на А4, кажется.


Для ошибок TCP/IP есть похожая таблица от IBM из манов DB2, которая ...

По популярности «та самая» таблица должна быть как Rosetta Stone for Unix, посему и прошу Вашей помощи.


Вдруг у кого чудо-табличка завалялась?


Ну, а если не найдется — все равно оставляйте пожелания, займусь тогда составлением сам.
  • Вопрос задан
  • 3264 просмотра
Пригласить эксперта
Ответы на вопрос 1
@lesha_penguin
Если для того чтобы писать в логи, можете использовать более-менее штатные средства:
1) Глобальную таблицу const char* sys_errlist[];
2) Posix-рекомендуемую функцию strerror();
3) Ну и наконец «быстро и просто» ругнуться в stderr можно с помощью perror()

Понятно, что я вам счас сказал portable/compatible методы решения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы