Chcel by som získať ukazovateľ na surové binárne dáta bajtov, bytearray alebo inštancie pamäte pomocou ctypes a Python API.
Pre čítanie, (c_char * len(b)).from_buffer(b)
pracuje v Pythone 3. Na písanie som použil nasledovné:
buffer = c_void_p()
length = c_ssize_t()
pythonapi.PyObject_AsReadBuffer(py_object(b), byref(buffer), byref(length))
Zistil som však, že kód nefunguje v Pythone 2.7 s pamäťou.
odpovede:
2 pre odpoveď č. 1V súčasnosti používam Pythonovú vyrovnávaciu štruktúrudefinované pomocou ctypes a Python API funkcie PyObject_GetBuffer získať vyrovnávaciu pamäť z ľubovoľného kompatibilného objektu. Nástroj My Python buffer structure je potom transformovaný na c_char array a vytvorený buffer buffer je relased pomocou PyBuffer_Release. vidieť https://github.com/Drekin/win-unicode-console/blob/master/win_unicode_console/buffer.py.