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

时间:2019-04-12 11:00:12

标签: python ctypes

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

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

我创建缓冲区并按如下所示调用函数:

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

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

我已经尝试使用 cast(buf, c_char_p).value将产生一个包含buf内容的字节对象。但是它以buf中的第一个空字节终止。

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

1 个答案:

答案 0 :(得分:0)

没关系。我自己发现的:

cast(buf, POINTER(c_char))[0:n]