Binär lesen mit CFile

S

schwork

Moin.

Ich habe das Problem, dass ich mit CFile eine Binär-file lesen will. Allerdings habe ich nirgedswo Informationen dazu bekommen, wie ich von Big- auf Little-Endian umstellen kann. Gibt es da einen OpenFlag? Kennt sich da einer aus und kann mir weiterhelfen?
 
Ich glaube nicht, dass das geht. Ich würde wahrscheinlich alles in einen Buffer (char-Array z.B.) packen und dort die Bytes vertauschen.
 
Wie kann man eigentlich in Erfahrung bringen, ob sein Prozessor mit "big endian" oder "little endian" arbeitet?

Gibt es dafür einen speziellen C++ Befehl, der das in Erfahrung bringt?

Ich meine, mein Rechner arbeitet mit "little endian". Da das Programm vielleicht später mal auf einem anderen Rechner, z.B. einer Workstation oder so (mit "big endian") genutzt werden soll, muss es doch eine Möglichkeit geben, das Programm das checken zu lassen, und dann dementsprechend die Bytes umzuwurschteln.
 
Ich bin mir ziemlich sicher, dass dein Programm für andere Endian-Rechner sowieso neu kompiliert werden muss, aber:

Um festzustellen, welche Endian der Rechner gerade hat, sollte doch ein einfacher 32-bit-Wert reichen. Nimm etwas klares wie 0x12345678 und guck dann in dem Byte an der selben Adresse nach. Steht 0x12 drin, hast du Big-Endian, hast du 0x78 drin, ist es Little-Endian.
 

Neue Beiträge

Zurück