Python перехват завернутой C ошибки функции - PullRequest
0 голосов
/ 31 января 2020

При вызове функции обернутой c как таковой:

f = io.BytesIO()
with stdout_redirector(f):
    r = _wrapped_c_function(in_file, out_file)

код возврата возвращается в r, где коды возврата приведены на основе ошибок, возникающих внутри функции C, однако, если в функции C возникает ошибка, которая НЕ перехватывается функцией C r, она завершается как 0, а программа Python молча завершает работу как 0, указывая, что ничего не произошло. Однако в stdoutt будет напечатано сообщение типа malloc(): invalid size (unsorted).

Как я могу перехватить эти сообщения об ошибках, так как вызов функции не должен ничего печатать, если все работает. Проблема с использованием перенаправителя заключается в том, что при сбое _wrapped_c_function он выходит из функции Python, прежде чем что-либо может быть записано в буфер f.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...