États de flux
Les états valides, les transitions d'état, pour un flux sont présentés dans l'illustration suivante.
Chacun des cercles indique un état stable.Chacune des lignes indique une transition qui peut être due à un appel de fonction qui traite le flux de données.cinq groupes de fonctions peuvent provoquer des transitions d'état.
Les fonctions aux trois premiers groupes sont déclarées dans <stdio.h> :
La lecture d'octets fonctionne - fgetc, fgets, fread, fscanf, getc, getchar, obtient, scanf, et ungetc
L'écriture d'octets fonctionne - fprintf, fputc, fputs, fwrite, printf, putc, putchar, met, vfprintf, et vprintf
la position fonctionne - fflush, fseek, fsetpos, et rebobinage
Les fonctions dans les deux groupes restants sont déclarées dans <wchar.h> :
la lecture large fonctionne - fgetwc, fgetws, fwscanf, getwc, getwchar, ungetwc, et wscanf,
les fonctions larges d'écriture - fwprintf, fputwc, fputws, putwc, putwchar, vfwprintf, vwprintf, et wprintf,
Le diagramme d'état indique que vous devez appeler l'une des fonctions de position entre la plupart d'écrire et lire des opérations :
vous ne pouvez pas appeler une fonction de lecture si la dernière opération sur le flux de données était une écriture.
Vous ne pouvez pas appeler une fonction d'écriture si la dernière opération sur le flux de données était une lecture, à moins que cette opération de lecture définir 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 fonction valides qui peuvent suivre.