Как преобразовать errno в UNIX к соответствующей строке?

После поиска Вас находят что-то.

39
задан avd 10 October 2009 в 02:38
поделиться

4 ответа

strerror () должен это сделать. http://linux.die.net/man/3/strerror

К вашему сведению, чтобы вам было легче найти эти вещи самостоятельно: если вы наберете man errno (или другую функцию, которую исследуете), и посмотрите в самый низ страницы руководства, вы увидите список связанных функций. Если вы наберете каждого из них (угадывая, какой из них сделать первым, основываясь на их именах), вы часто найдете ответы на похожие вопросы.

69
ответ дан 27 November 2019 в 02:20
поделиться

Еще одно решение, которое точно решает вашу проблему, но на Python вместо C:

>>> import errno
>>> errno.errorcode[errno.EIDRM]
'EIDRM'
12
ответ дан 27 November 2019 в 02:20
поделиться

Я не уверен насчет таких имен enum -стилей, но для целей отладки и сообщений об ошибках вы можете использовать perror (3) или strerror (3) Функции C, которые возвращают удобочитаемое представление кода ошибки. Пожалуйста, обратитесь к страницам руководства для получения более подробной информации.

4
ответ дан 27 November 2019 в 02:20
поделиться

If you do indeed want EIDRM and not its error string: no. However, on OpenBSD,

man errno|egrep ' [0-9]+ E[A-Z]+'|sed 's/^ *//'|cut -d' ' -f1,2

prints out a nice table of "...\n89 EIDM\n..." that you can convert further into a data structure for the programming language that you'd like to have this function in.

3
ответ дан 27 November 2019 в 02:20
поделиться
Другие вопросы по тегам:

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