Estados de fluxo
Os estados válidos e transições de estado para um fluxo são mostrados na figura a seguir.
Cada um dos círculos indica um estado estável. Cada uma das linhas denota uma transição que pode ocorrer como resultado de uma chamada de função que opera no fluxo. Cinco grupos de funções podem causar transições de estado.
Funções nos três primeiros grupos são declaradas no <stdio.h>:
As funções de leitura de bytes:
fgetc
, , , , , ,fread
fgets
, escanf
fscanf
getc
getchar
gets
ungetc
As funções de gravação de bytes:
fprintf
, , , , , , ,putchar
printf
fwrite
, eputs
vfprintf
fputc
fputs
putc
vprintf
Funções em dois grupos restantes são declaradas no <wchar.h>:
As funções de leitura ampla:
fgetwc
, , , ,getwchar
getwc
, , e ,fgetws
fwscanf
ungetwc
wscanf
As funções de gravação ampla:
fwprintf
, , , , ,putwchar
vfwprintf
putwc
, e ,fputwc
fputws
vwprintf
wprintf
O diagrama de estado mostra que você deve chamar uma das funções de posição entre a maioria das operações de leitura e gravação:
Não é possível chamar uma função de leitura se a última operação no fluxo foi uma gravação.
Não é possível chamar uma função de gravação se a última operação no fluxo foi uma leitura, a menos que essa operação de leitura defina o indicador de fim de arquivo.
Por fim, o diagrama de estado mostra que uma operação de posição nunca diminui o número de chamadas de função válido que pode seguir.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de