【发布时间】:2009-12-23 08:36:07
【问题描述】:
有谁知道在 Python 中使用 C 头文件的好方法吗?例如,我有一个包含全局变量的 C 程序:
typedef struct ImageInfo
{
uint8_t revisionMajor;
uint8_t revisionMinor;
uint16_t checksum;
} ImageInfo;
ImageInfo gImageInfo; /* Placed at a specific address by the linker */
我希望能够获取由 C 编译器/链接器生成的二进制文件,并使用 Python 脚本解析此结构(并可能对其进行修改)。
【问题讨论】:
-
这种结构可能在“二进制文件”中不存在——直到程序被操作系统加载到 RAM 后的执行时间,它才真正“存在”。那么你到底想做什么?
-
哎呀我忘了提到全局变量被放置在只读(即闪存或 ROM)内存中。在上面的示例中,gImageInfo 将放置在二进制文件中的偏移量 0x1000 处,我希望能够使用 Python 读取结构并获取修订信息以验证校验和。