Estados de secuencia
En la siguiente ilustración se muestran los estados válidos y las transiciones de estado de una secuencia.
Cada uno de los círculos indica un estado estable. Cada una de las líneas indica una transición que se puede producir como resultado de una llamada de función que opera en la secuencia. Hay cinco grupos de funciones que pueden provocar transiciones de estado.
Las funciones de los tres primeros grupos se declaran en <stdio.h>:
Las funciones de lectura de bytes:
fgetc
, ,fgets
fread
,getc
fscanf
,getchar
, ,gets
, ,scanf
yungetc
Las funciones de escritura de bytes:
fprintf
,fputc
,fputs
,printf
fwrite
putchar
putc
, ,puts
, yvfprintf
vprintf
Las funciones de los dos grupos restantes se declaran en <wchar.h>:
Las funciones de lectura anchas:
fgetwc
,fgetws
,fwscanf
,getwc
,getwchar
,ungetwc
, ywscanf
.Funciones de escritura anchas:
fwprintf
,fputwc
,fputws
,putwchar
vwprintf
putwc
vfwprintf
, y .wprintf
El diagrama de estado muestra que debe llamar a una de las funciones de posición entre la mayoría de las operaciones de lectura y escritura:
No se puede llamar a una función de lectura si la última operación de la secuencia era una escritura.
No se puede llamar a una función de escritura si la última operación de la secuencia era de lectura, a menos que esa operación de lectura establezca el indicador de fin de archivo.
Por último, el diagrama de estado muestra que una operación de posición nunca disminuye el número de llamadas de función válidas que le pueden seguir.