Steuern von Streams
fopen
gibt die Adresse eines Objekts vom Typ FILE
zurück. Sie verwenden diese Adresse als stream
-Argument für mehrere Bibliotheksfunktionen, um verschiedene Operationen für eine geöffnete Datei durchzuführen. Bei einem Bytedatenstrom erfolgt jede Eingabe so, als ob jedes Zeichen durch Aufrufen fgetc
gelesen wird. Alle Ausgaben erfolgen so, als ob jedes Zeichen durch Aufrufen fputc
geschrieben wird. Bei einem breiten Datenstrom erfolgt jede Eingabe so, als ob jedes Zeichen durch Aufrufen fgetwc
gelesen wird. Alle Ausgaben erfolgen so, als ob jedes Zeichen durch Aufrufen fputwc
geschrieben wird.
Sie können eine Datei schließen, indem Sie eine Datei aufrufen fclose
, nach der die Adresse des FILE
Objekts ungültig ist.
Ein FILE
-Objekt speichert den Status eines Streams wie Folgendes:
Ein Fehlerindikator, der von einer Funktion auf ungleich Null festgelegt ist und einen Lese- oder Schreibfehler findet.
Ein Indikator für das Dateiende, der von einer Funktion auf ungleich Null festgelegt ist und beim Lesen das Ende der Datei erreicht hat.
Ein Dateipositionszeiger, der das nächste Byte in dem zu lesenden oder schreibenden Stream angibt, sofern die Datei Positionierungsanforderungen unterstützt.
Ein Streamstatus gibt an, ob der Stream Lese- und/oder Schreibvorgänge akzeptiert und ob der Stream ungebunden, byteorientiert oder weit ausgerichtet ist.
Ein Konvertierungszustand merkt sich den Zustand eines teilweise zusammengesetzten oder generierten generalisierten Multibyte-Zeichens und eines Schichtzustands für die Abfolge von Bytes in der Datei).
Ein Dateipuffer gibt die Adresse und Größe eines Arrayobjekts an. Bibliotheksfunktionen können sie verwenden, um die Leistung von Lese- und Schreibvorgängen in den Datenstrom zu verbessern.
Ändern Sie keinen Wert, der in einem FILE
Objekt oder in einem Dateipuffer gespeichert ist, den Sie für die Verwendung mit diesem Objekt angeben. Sie können ein FILE
Objekt nicht kopieren und die Adresse der Kopie als Argument in stream
eine Bibliotheksfunktion portabel verwenden.