使用CFFI library for Python,我试图将Python字符串哄骗到char *中,以便将其传递给接受char *的C函数.我似乎无法弄清楚什么是正确的咒语.
考虑以下示例:
>>> from cffi import FFI
>>> ffi = FFI()
>>> ffi.new("char[]", "bob")
结果是:
TypeError: initializer for ctype 'char[]' must be a bytes or list or tuple, not str
以下内容也不起作用:
>>> ffi.new("char*", "bob")
它说:
TypeError: initializer for ctype 'char' must be a bytes of length 1, not str
解决方法:
o11c已经解决了这个问题:
明确选择一种编码,例如“ bob” .encode(‘ascii’).这似乎在Python 3中只是必要的.