如何在python中获取errno值的错误消息?

如何在python中获取errno值的错误消息?,python,linux,ctypes,errno,system-calls,Python,Linux,Ctypes,Errno,System Calls,我正在使用ctypes模块在Linux上执行一些ptrace系统调用,这实际上是可行的 很好但是如果我出错了,我想提供一些有用的信息。所以我 执行一个get_errno()函数调用,返回errno的值,但我没有找到 任何解释errno值并给出关联 错误消息 我错过什么了吗? 是否有基于ctypes的解决方案 以下是我的设置: import logging from ctypes import get_errno, cdll from ctypes.util import find_library

我正在使用ctypes模块在Linux上执行一些ptrace系统调用,这实际上是可行的 很好但是如果我出错了,我想提供一些有用的信息。所以我 执行一个get_errno()函数调用,返回errno的值,但我没有找到 任何解释errno值并给出关联 错误消息

我错过什么了吗? 是否有基于ctypes的解决方案

以下是我的设置:

import logging
from ctypes import get_errno, cdll
from ctypes.util import find_library, errno

# load the c lib
libc = cdll.LoadLibrary(find_library("c"), use_errno=True)
...
例如:

 return_code = libc.ptrace(PTRACE_ATTACH, pid, None, None)
 if return_code == -1:
   errno = get_errno()
   error_msg = # here i wanna provide some information about the error
   logger.error(error_msg)

这将打印
ENODEV:没有这样的设备

import errno, os

def error_text(errnumber):
  return '%s: %s' % (errno.errorcode[errnumber], os.strerror(errnumber))

print error_text(errno.ENODEV)

您是否看过
errno
软件包?遗漏、不完整或令人困惑的是什么@谢谢,这正是我想要的。
>>> import errno
>>> import os
>>> os.strerror(errno.ENODEV)
'No such device'