Бих искал да получа указател към суровите двоични данни от байтове, bytearray или копие на memoryview чрез ctypes и Python API.
За четене, (c_char * len(b)).from_buffer(b)
работи в Python 3. За писане използвах следното:
buffer = c_void_p()
length = c_ssize_t()
pythonapi.PyObject_AsReadBuffer(py_object(b), byref(buffer), byref(length))
Но разбрах, че кодът не работи в Python 2.7 с memoryview.
Отговори:
2 за отговор № 1В момента използвам Python буферна структурадефинирани чрез ctypes и Python API функцията PyObject_GetBuffer за получаване на буфер от произволно съвместим обект. Моят Python буфер структура обект след това се трансформира в c_char масив и създаден буфер обект се relased използва PyBuffer_Release. виждам https://github.com/Drekin/win-unicode-console/blob/master/win_unicode_console/buffer.py.