如何在Python3中访问c_void_p_Array_8对象的各个字节?

问题描述 投票:0回答:1

我正在使用Python ctypes从共享库中调用函数。该函数使用char *缓冲区调用,在该缓冲区中写入其结果。函数的返回值是写入缓冲区的字节数。

调用该函数工作正常,但我正在努力访问缓冲区的各个字节。

我创建缓冲区并像这样调用函数:

buf = (c_void_p * RECBUFFERSIZE)()
n = functionInLibrary(buf)

现在如何读取存储在buf中的各个字节?

我已经尝试过使用cast(buf, c_char_p).value,这会产生一个带有buf内容的字节对象。但是它被buf中的第一个空字节终止。

这正是我不想要的。我需要从buf中读取第一个n字节。

python ctypes
1个回答
0
投票

没关系。我自己发现了:

cast(buf, POINTER(c_char))[0:n]
© www.soinside.com 2019 - 2024. All rights reserved.