Stavy streamu
Platné stavy a přechody stavu pro datový proud jsou znázorněny na následujícím obrázku.
Každý z kruhů označuje stabilní stav. Každý z řádků označuje přechod, který může nastat jako výsledek volání funkce, která funguje ve streamu. Pět skupin funkcí může způsobit přechody stavu.
Funkce v prvních třech skupinách jsou deklarovány v <stdio.h>:
Funkce čtení bajtů:
fgetc
,fgets
,fscanf
fread
,getc
, ,getchar
,gets
, ,scanf
aungetc
Funkce zápisu bajtů:
fprintf
,fputc
,putc
fwrite
fputs
printf
,putchar
, ,puts
, , avfprintf
vprintf
Funkce ve zbývajících dvou skupinách jsou deklarovány ve <wchar.h>:
Široké funkce čtení:
fgetwc
, ,fgetws
fwscanf
,getwc
getwchar
, ,ungetwc
, awscanf
,Široké funkce zápisu:
fwprintf
,fputwc
,fputws
,putwc
putwchar
,vfwprintf
, ,vwprintf
, awprintf
,
Stavový diagram znázorňuje, že je nutné volat jednu z pozičních funkcí mezi většinou operací zápisu a čtení:
Funkci čtení nelze volat, pokud poslední operace datového proudu byla zápisem.
Funkci zápisu nelze volat, pokud poslední operace datového proudu byla přečtená, pokud tato operace čtení nenastavila indikátor konce souboru.
Nakonec stavový diagram ukazuje, že operace pozice nikdy nezmenšuje počet platných volání funkcí, která mohou následovat.