python-ctypes pragma pack für byte-aligned Lesen

Ich habe eine C++ Anwendung mit unten-Struktur in eine Datei geschrieben. Jetzt muss ich unmarshal Sie mit python, Das grundlegende problem hier ist, wie zu reflektieren, die pragma pack option in python.

C++ - Struktur

#pragma pack(1)
struct abc  
{  
unsigned char r1;  
unsigned char r2;  
unsigned char p1;  
unsigned int id;  
};  
#pragma pack()

Nun, die Struktur, die Größe ist 7 not 8diese Daten geschrieben werden in eine Daten-Datei. Wie Kriege ich diese Daten mit Hilfe von python.

Beachten :

1. Ich bin mit ctypes, und die oben genannten Struktur ist eine Beispiel-Struktur.


ctypes verwendet die native byte-Reihenfolge für Strukturen und Unions. Strukturen zu bauen, die mit nicht-nativen byte-Reihenfolge verwenden, können Sie eine der BigEndianStructure, LittleEndianStructure, BigEndianUnion, und LittleEndianUnion Basisklassen. Diese Klassen enthalten, nicht Zeiger, Felder


Den oben genannten Informationen, die aus python docs, nicht tiefer in details einzusteigen.

Schreibe einen Kommentar