11.7. Stolpersteine
- Um eine Datei für "Lesen" und "Schreiben" zu öffnen und dabei ihren bestehenden Inhalt zu behalten, dürfen Sie sie keinesfalls mit "w+" öffnen. Das Öffnen einer Datei mit "w" oder "w+" vernichtet alle ihre Daten, selbst wenn Sie kein einziges Byte in diese Datei schreiben!
- Auf Systemen, unter denen die Komponenten einer Pfadangabe durch einen Backslash getrennt werden, müssen Sie bei Funktionen wie fopen(), rename() oder remove() einen doppelten Backslash als Trenner in Verzeichnis-Pfaden angeben. Andernfalls sehen Sie sich während der Programm-Ausführung mit "mysteriösen" Fehlern bei den betroffenen Datei-Operationen konfrontiert.
- Wenn Sie eine Datei mit "r+" oder "w+" öffnen und mit Schreibvorgängen am Dateiende angelangt sind, dann müssen Sie für nachfolgende Leseoperationen den Positionszeiger wieder zurücksetzen (z.B. mit rewind()). Falls Sie das vergessen, scheitert der folgende Lesevorgang sofort an EOF.
- Die Ausgabefunktionen fputs() und fprintf() erwarten ihre Argumente in unterschiedlicher Reihenfolge. Während fprintf() den Pointer auf FILE an der ersten Argumentstelle erwartet, will fputs() einen solchen an der letzten Stelle.
- Die Funktionen rename() und remove() erwarten als Argumente nicht Zeiger auf FILE, sondern Dateinamen. Dateien, die geöffnet sind, sollten keinesfalls umbenannt oder gelöscht werden, auch wenn Systeme wie MS-DOS dies zulassen!
- Arbeiten Sie mit fseek() und haben dabei Dateien im Textmodus geöffnet, dann sollten Sie bedenken, daß die Länge von Zeichenketten eine unverläßliche Angabe für das zweite Argument (Offset) darstellt!
- Wenn Sie Binärdateien öffnen, dann müssen Sie auf vielen Systemen an den Öffnungs-Modus ein 'b' anhängen, also z.B. "w+b". Andernfalls ist der Textmodus aktiv und jeder Schreibvorgang hängt unter PC-Systemen beim Auftreten eines ASCII-10 automatisch ein ASCII-13 an!