Streamzustände
Die gültigen Zustände und Statusübergänge für einen Stream sind in der folgenden Abbildung dargestellt.
Jeder der Kreise kennzeichnet einen stabilen Zustand. Jede der Linien kennzeichnet einen Übergang, der als Ergebnis eines Funktionsaufrufs auftritt, der auf dem Stream verwendet wird. Fünf Funktionsgruppen können zu Statusübergängen führen.
Funktionen in den ersten drei Gruppen werden in <stdio.h> deklariert:
Die Bytelesefunktionen:
fgetc
, ,fgets
,fscanf
fread
,getc
,getchar
,gets
, , undscanf
ungetc
Die Byte-Schreibfunktionen:
fprintf
, ,fwrite
fputs
printf
fputc
,putc
,putchar
puts
, , , undvfprintf
vprintf
Funktionen in der neu Standard werden in <wchar.h> deklariert:
Die breiten Lesefunktionen:
fgetwc
, ,fgetws
,fwscanf
,getwc
,getwchar
, undungetwc
,wscanf
Die breiten Schreibfunktionen:
fwprintf
, ,fputwc
,putwc
fputws
,putwchar
,vfwprintf
, , undvwprintf
,wprintf
Das Zustandsdiagramm zeigt, dass Sie eine der Positionsfunktionen zwischen den meisten Schreib- und Lesevorgängen aufrufen müssen:
Sie können keine Lesefunktion aufrufen, wenn der letzte Vorgang im Datenstrom ein Schreibvorgang war.
Sie können keine Schreibfunktion aufrufen, wenn der letzte Vorgang im Datenstrom ein Lesevorgang war, es sei denn, dieser Lesevorgang legt den End-of-File-Indikator fest.
Schließlich zeigt das Zustandsdiagramm, dass ein Positionsvorgang nie die Anzahl gültiger Funktionsaufrufen verringert, die folgenden kann.
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für