Я застрял с довольно сложным модулем Python, который не возвращает полезные коды ошибок (на самом деле он молча терпит неудачу). Однако базовая библиотека C, которую она вызывает, устанавливает errno.
Обычно errno входит в атрибуты OSError, но, поскольку у меня нет исключения, я не могу его найти.
Используя ctypes, libc.errno не работает, потому что errno является макросом в GNU libc. Python 2.6 имеет некоторые возможности, но Debian все еще использует Python 2.5. Вставка модуля C в мою чистую программу на Python просто для того, чтобы прочитать ошибку, отвратителен.
Есть ли какой-нибудь способ получить доступ к errno? Подойдет только решение для Linux, так как библиотека для обёртывания предназначена только для Linux. Мне также не нужно беспокоиться о потоках, так как я запускаю только один поток в то время, когда это может не сработать.