定义结构时python cffi分析错误
我正在尝试使用定义结构时python cffi分析错误,python,python-cffi,Python,Python Cffi,我正在尝试使用python cffi包装C代码。下面的示例\u build.py显示了尝试包装lstat()调用: import cffi ffi = cffi.FFI() ffi.set_source("_cstat", """ #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> """,
python cffi
包装C代码。下面的示例\u build.py
显示了尝试包装lstat()
调用:
import cffi
ffi = cffi.FFI()
ffi.set_source("_cstat",
"""
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
""",
libraries=[])
ffi.cdef("""
struct stat {
mode_t st_mode;
off_t st_size;
...;
};
int lstat(const char *path, struct stat *buf);
""")
if __name__ == '__main__':
ffi.compile()
但是,从中给出的类似示例没有任何问题。我错过了什么?TIA.您需要通知CFFI
模式和关闭是一些整数类型。最简单的方法是首先在cdef()中添加这些行:
typedef int。。。模式_t;/*表示“模式是某种整数类型”*/
类型定义输入。。。关!;
您需要通知CFFImode\u t
和off\u t
是一些整数类型。最简单的方法是首先在cdef()中添加这些行:
typedef int。。。模式_t;/*表示“模式是某种整数类型”*/
类型定义输入。。。关!;
实际类型宽度可能不同。请不要仅仅为了INT@socketpair:否,语法点typedef int。。。关!带有省略号的代码>,正是为了让CFFI为您找到真正的类型宽度。这并不意味着“完全使用int”。实际的类型宽度可能不同。请不要仅仅为了INT@socketpair:否,语法点typedef int。。。关!带有省略号的代码>,正是为了让CFFI为您找到真正的类型宽度。这并不意味着“完全使用int”。
cffi.api.CDefError: cannot parse "mode_t st_mode;"
:4:13: before: mode_t