Я создал буферный объект в Python так:
f = io.open('some_file', 'rb')
byte_stream = buffer(f.read(4096))
Сейчас я передаю byte_stream
в качестве параметра функции C через SWIG. У меня есть карта типов для преобразования данных, которая выглядит следующим образом:
%typemap(in) unsigned char * byte_stream {
PyObject *buf = $input;
//some code to read the contents of buf
}
Я пробовал несколько разных вещей, которые ошибка не может получить к фактическому содержанию / значению моего byte_stream. Как мне преобразовать или получить доступ к содержимому моего byte_stream
с помощью C API? Существует много разных методов для преобразования данных C в буфер, но я не могу найти другой способ для обхода.
Я попытался посмотреть на этот объект в gcb, но ни он, ни значения, на которые он указывает, содержат мои данные.
(я использую буферы, потому что я хочу избежать затрат на преобразование данных в строку при чтении их из файла)
Я использую Python 2.6 в Linux.
-
Спасибо Павел