2 Stimmen

C++ 64-Bit-Dateieingangs- und -ausgangsprobleme

Ich habe einen interessanten Fehler bei der Konvertierung einer C++-Anwendung von 32 auf 64 Bit Linux gefunden. Unsere FileStore-Klasse implementiert das Speichern/Wiederherstellen von Strukturen in/aus einer Datei. Sie ruft immer fopen() und fclose() vor und nach jeder Operation auf, außer in einer Methode. In dieser (fehlerhaften) Methode kann sie auf 32-Bit-Plattformen fseek() und fread() ohne Fehler ausführen, obwohl die Datei zuvor durch andere Methoden fclose() geschlossen wurde. Auf 64-Bit-Plattformen stürzt es jedes Mal bei fread() ab. Ich vermute, dass auf der 32-Bit-Plattform die zugrundeliegende FILE-Struktur auch nach fclose() bestehen bleibt, so dass weiterhin auf sie zugegriffen werden kann. Hat jemand weitere Informationen darüber, warum dieser Unterschied und alle anderen Probleme mit 64-Bit-Datei i/o zu tun?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X