title: How do I build a python string from a raw (binary) ctype buffer?
body: <p>I'm playing with Python and ctypes and I can't figure out how to resolve this problem. I call to a C function which fills a raw binary data. My code looks like this: </p>
  
  <pre><code>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
  </code></pre>
  
  <p>The problem is that I'm receiving binary data (with 0x00) and it's truncated when I tried to build my_string. How can I build my_string if self._buf contains null bytes 0x00? </p>
  
  <p>Any idea is welcome. Thanks</p>