États de flux
Les états valides et les transitions d’état d’un flux de données sont indiqués dans l’illustration suivante.
Chaque cercle indique un état stable. Chacune des lignes dénote une transition qui peut se produire à la suite d’un appel de fonction opérant sur le flux de données. Cinq groupes de fonctions peuvent entraîner des transitions d’état.
Les fonctions des trois premiers groupes sont déclarées dans <stdio.h> :
Fonctions de lecture d’octet :
fgetc
, ,fread
fgets
,getc
fscanf
getchar
, ,gets
, ,scanf
etungetc
Fonctions d’écriture d’octet :
fprintf
, ,fputc
,putc
printf
fwrite
putchar
fputs
,puts
, , etvfprintf
vprintf
Les fonctions des deux autres groupes sont déclarées dans <wchar.h> :
Fonctions de lecture large :
fgetwc
, ,fwscanf
fgetws
,getwc
getwchar
,ungetwc
, etwscanf
,Fonctions d’écriture large :
fwprintf
, ,fputwc
,putwchar
vfwprintf
vwprintf
fputws
putwc
et ,wprintf
Le diagramme d’état indique que vous devez appeler l’une des fonctions de position entre la plupart des opérations d’écriture et de lecture :
Vous ne pouvez pas appeler une fonction de lecture si la dernière opération sur le flux était une écriture.
Vous ne pouvez pas appeler une fonction d’écriture si la dernière opération sur le flux était une lecture, sauf si cette opération de lecture a défini l’indicateur de fin de fichier.
Enfin, le diagramme d’état indique qu’une opération de position ne diminue jamais le nombre d’appels de fonctions valides qui peuvent suivre.