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?