定义结构时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;/*表示“模式是某种整数类型”*/
类型定义输入。。。关!;

您需要通知CFFI
mode\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