【发布时间】:2025-12-08 13:25:01
【问题描述】:
我在 Python 中有以下代码,使用 cffi:
from cffi import FFI
ffi = FFI()
ffi.cdef("int somefunc(char** data);")
lib = ffi.dlopen("somelib")
现在,我想用char** 调用somefunc 并将数据传给Python。 somefunc 实际上填充了data,所以:
data = ffi.new("char**", ffi.NULL)
lib.somefunc(data)
那么我现在应该如何将data 变量的结果转换为 Python 字符串?有什么想法吗?
谢谢!
【问题讨论】:
-
提示:在 C 中,
char**和char[][]基本上是同一个东西。 -
另外,将其设为
char **data,而不是char** data-- 前者在您在同一行上定义多个变量时的行为方式并不令人惊讶。
标签: python c python-cffi cffi