Ho un'applicazione C++ con struttura sottostante scritta su file. Ora ho bisogno di unmarshal usando python, il problema di base qui è come riflettere l'opzione pragma pack
in python.python ctypes pragma pack per byte allineato leggere
C++ Struttura
#pragma pack(1)
struct abc
{
unsigned char r1;
unsigned char r2;
unsigned char p1;
unsigned int id;
};
#pragma pack()
Ora, la dimensione della struttura è 7 not 8
, questi dati vengono scritti in un file di dati. Come posso recuperare questi dati usando python.
Nota:
1. Sto usando i tipi, e la struttura sopra è una struttura di esempio.
ctypes utilizza l'ordine di byte nativo per strutture e sindacati. Per creare strutture con un ordine di byte non nativo, è possibile utilizzare una delle classi base di BigEndianStructure, LittleEndianStructure, BigEndianUnion e LittleEndianUnion. Queste classi non possono contenere campi puntatore
Le informazioni di cui sopra da docs pitone, non approfondire i dettagli.
Grazie. Ha funzionato! –