Я пытаюсь написать расширение Python C, которое читает упакованные двоичные данные (они сохраняются как структуры структур), а затем анализирует их в объектах Python. На 32-битной машине все работает как положено (двоичные файлы всегда пишутся на 32-битной архитектуре), но не на 64-битной. Есть ли «предпочтительный» способ сделать это?
Было бы много кода для публикации, но в качестве примера:
struct
{
WORD version;
BOOL upgrade;
time_t time1;
time_t time2;
} apparms;
File *fp;
fp = fopen(filePath, "r+b");
fread(&apparms, sizeof(apparms), 1, fp);
return Py_BuildValue("{s:i,s:l,s:l}",
"sysVersion",apparms.version,
"powerFailTime", apparms.time1,
"normKitExpDate", apparms.time2
);
Теперь в 32-битной системе это прекрасно работает, но в 64-битном формате мои time_t отличаются (32-битные и 64-битные).
Черт, вы, люди, быстрые.
Патрик, я изначально начал использовать пакет struct, но обнаружил, что это просто способ замедлить работу для моих нужд. Кроме того, я искал повод написать расширение Python.
Я знаю, что это глупый вопрос, но на какие типы мне нужно обращать внимание?
Спасибо.