获取 `time_t` 的类型/大小使用 ctypes

2024-10-01 05:01:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pythonctypes模块访问一个包含一些time_t字段的C结构。在

鉴于其非完全可移植性,我不能静态地将这些字段定义为c_int或{}类型。在

如何定义它们以使代码可移植?在

示例C结构定义:

#import <sys/types.h>
#import <time.h>

typedef struct my_struct {
    time_t timestap;
    uint16_t code;      
};

相应的python ctypes结构:

^{pr2}$

Tags: 模块代码import示例类型定义timesys
1条回答
网友
1楼 · 发布于 2024-10-01 05:01:22

最好的办法是反省运行脚本的系统,并确定使用哪种整数类型。有点像

if sys.platform == 'win32':
    time_t = ctypes.c_uint64
# ...

底线是标准中没有定义time_t。这取决于操作系统和编译器。因此,Python脚本中time_t的定义取决于与之交互的DLL/So。在

相关问题 更多 >