2011-10-20 30 views
4

我正在使用ctypes模塊在Linux上執行一些ptrace系統調用,實際上它的工作原理是 。但是如果我得到一個錯誤,我想提供一些有用的信息。因此我 做一個get_errno()函數調用返回errno的值,但我沒有發現任何函數或其他解釋errno值,並給我一個關聯的 錯誤信息。如何在python中獲取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) 
... 

例子:

+1

難道你看看'errno'包?什麼遺漏,不完整或令人困惑? http://docs.python.org/library/errno.html –

+0

@ S.Lott感謝這正是我所期待的。 – Nicoretti

回答

3

這將打印ENODEV: No such device

import errno, os 

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

print error_text(errno.ENODEV) 
1
>>> import errno 
>>> import os 
>>> os.strerror(errno.ENODEV) 
'No such device' 
相關問題