gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:35:00 25 4
gpt4 key购买 nike

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

鉴于其不完全可移植的特性,我无法将这些字段静态定义为 c_intc_long 类型。

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

示例 C 结构定义:

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

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

各自的python ctypes结构:

from ctypes import *

c_time = ? # What do I have to put here?

class MyStruct(Structure):
_fields_ = [
('timestamp', c_time),
('code', c_int16),
]

最佳答案

最好的办法是反省脚本运行的系统,并确定要使用的整数类型。类似的东西,

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

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

关于python - 使用 ctypes 获取 `time_t` 的类型/大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6418221/

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