gpt4 book ai didi

定义结构时python cffi解析错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:01 26 4
gpt4 key购买 nike

我正在尝试使用 python-cffi 来包装 C 代码。以下 example_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()

当编译 python example_build.py 时会提示 mode_t st_mode 的解析错误。

cffi.api.CDefError: cannot parse "mode_t  st_mode;"
:4:13: before: mode_t

manual 中给出的类似示例虽然没有任何问题。我错过了什么? TIA。

最佳答案

需要告知CFFI,mode_toff_t是一些整数类型。最简单的方法是首先在 cdef() 中添加这些行:

typedef int... mode_t;   /* means "mode_t is some integer type" */
typedef int... off_t;

关于定义结构时python cffi解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33265890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com