Я играю с Python и ctypes и не могу понять, как решить эту проблему. Я вызываю функцию C, которая заполняет необработанные двоичные данные. Мой код выглядит так:
class Client():
def __init__(self):
self.__BUFSIZE = 1024*1024
self.__buf = ctypes.create_string_buffer(self.__BUFSIZE)
self.client = ctypes.cdll.LoadLibrary(r"I:\bin\client.dll")
def do_something(self):
len_written = self.client.fill_raw_buffer(self.__buf, self.__BUFSIZE)
my_string = repr(self.__buf.value)
print my_string
Проблема в том, что я получаю двоичные данные (с 0x00), и они усекаются, когда я пытаюсь собрать my_string. Как я могу построить my_string, если self._buf содержит нулевые байты 0x00?
Любая идея приветствуется. Спасибо