4
創建我有(例如)一個ctypes結構的緩衝區:如何從一個ctypes結構複製字節從create_string_buffer
from ctypes import *
class Foo(Structure):
_fields_ = [('f1',c_uint),
('f2',c_uint)]
我想複製這個結構的一個實例,這是一個緩衝區從create_string_buffer創建(比Foo的單個實例更大)。
例子:
f = Foo()
f.f1=1; f.f2=2;
buf = create_string_buffer(100)
buf[0:sizeof(f)] = f
我知道你可以閱讀並從文件對象的結構數據寫入/(即開放( '酒吧', 'RB')readinto(F)),如此看來也應該有一些方法可以輕鬆地做到這一點...
如果我想周圍的人用另一種方式是什麼?將緩衝區轉換爲具有大小和數據的ctype結構。 – marsh
@marsh,使用'memmove'將數據複製到現有的結構中,但是如果您要創建新實例,請改爲使用'from_buffer_copy'構造函數。 – eryksun