Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Essas funções processam dados em diferentes tamanhos e formatos, de caracteres únicos a grandes estruturas de dados. Eles também fornecem buffering, o que pode melhorar o desempenho. O tamanho padrão de um buffer de fluxo é 4K. Essas rotinas afetam apenas os buffers criados pelas rotinas de biblioteca de tempo de execução e não têm efeito nos buffers criados pelo sistema operacional.
Rotinas de E/S de fluxo
| Rotina | Utilização |
|---|---|
clearerr, clearerr_s |
Indicador de erro claro para fluxo |
fclose |
Fechar fluxo |
_fcloseall |
Feche todos os fluxos abertos, exceto stdin, stdoute stderr |
_fdopen, wfdopen |
Associar fluxo ao descritor de arquivo de arquivo aberto |
feof |
Teste para o fim do arquivo em fluxo |
ferror |
Teste de erro no fluxo |
fflush |
Fluxo de liberação para buffer ou dispositivo de armazenamento |
fgetc, fgetwc |
Ler caractere do fluxo (versões de função de getc e getwc) |
_fgetchar, _fgetwchar |
Ler caractere de stdin (versões de função de getchar e getwchar) |
fgetpos |
Obter indicador de posição de fluxo |
fgets, fgetws |
Ler cadeia de caracteres do fluxo |
_fileno |
Obter descritor de arquivo associado ao fluxo |
_flushall |
Libere todos os fluxos para buffer ou dispositivo de armazenamento |
fopen, _wfopen, fopen_s, _wfopen_s |
Fluxo aberto |
fprintf, _fprintf_l, , fwprintf, _fwprintf_lfprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l |
Gravar dados formatados para transmitir |
fputc, fputwc |
Escrever um caractere em um fluxo (versões de função de putc e putwc) |
_fputchar, _fputwchar |
Escrever caractere para stdout (versões de função de putchar e putwchar) |
fputs, fputws |
Gravar cadeia de caracteres para transmitir |
fread |
Ler dados não formatados do fluxo |
freopen, _wfreopen, freopen_s, _wfreopen_s |
Reatribuir FILE o ponteiro de fluxo a um novo arquivo ou dispositivo |
fscanf, fwscanf, fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l |
Ler dados formatados do fluxo |
fseek, _fseeki64 |
Mover a posição do arquivo para um determinado local |
fsetpos |
Definir indicador de posição do fluxo |
_fsopen, _wfsopen |
Fluxo aberto com compartilhamento de arquivos |
ftell, _ftelli64 |
Obter a posição atual do arquivo |
fwrite |
Gravar itens de dados não formatados para transmitir |
getc, getwc |
Ler caractere do fluxo (versões de macro de fgetc e fgetwc) |
getchar, getwchar |
Ler caractere de stdin (versões macro de fgetchar e fgetwchar) |
_getmaxstdio |
Retorna o número de arquivos abertos simultaneamente permitido no nível de E/S de fluxo. |
gets_s, _getws_s |
Leia a linha de stdin |
_getw |
Ler binário int do fluxo |
printf, _printf_l, , wprintf, _wprintf_lprintf_s, _printf_s_l, wprintf_s, _wprintf_s_l |
Gravar dados formatados em stdout |
putc, putwc |
Gravar caractere em um fluxo (versões de macro de fputc e fputwc) |
putchar, putwchar |
Escrever caractere em stdout (versões de macro de fputchar e fputwchar) |
puts, _putws |
Escrever linha para transmitir |
_putw |
Escrever binário int para transmitir |
rewind |
Mover a posição do arquivo para o início do fluxo |
_rmtmp |
Remover arquivos temporários criados por tmpfile |
scanf, _scanf_l, , wscanf, _wscanf_lscanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l |
Ler dados formatados de stdin |
setbuf |
Controle o buffer de fluxo |
_setmaxstdio |
Defina um máximo para o número de arquivos abertos simultaneamente no nível de E/S de fluxo. |
setvbuf |
Controle o buffer de fluxo e o tamanho do buffer |
_snprintf, _snwprintf, _snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l |
Gravar dados formatados de comprimento especificado na cadeia de caracteres |
_snscanf, _snwscanf, _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l |
Leia dados formatados de um comprimento especificado a partir do fluxo de entrada padrão. |
sprintf, swprintf, sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l |
Gravar dados formatados na cadeia de caracteres |
sscanf, swscanf, sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l |
Ler dados formatados da cadeia de caracteres |
_tempnam, _wtempnam |
Gerar nome de arquivo temporário em determinado diretório |
tmpfile, tmpfile_s |
Criar arquivo temporário |
tmpnam, _wtmpnam, tmpnam_s, _wtmpnam_s |
Gerar nome de arquivo temporário |
ungetc, ungetwc |
Empurrar o caractere de volta para o fluxo |
_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l |
Escreva dados formatados no console. |
vfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l |
Gravar dados formatados para transmitir |
vprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l |
Gravar dados formatados em stdout |
_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l |
Gravar dados formatados de comprimento especificado no buffer |
vsprintf, vswprintf, vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l |
Gravar dados formatados no buffer |
Quando um programa começa a execução, o código de inicialização abre automaticamente vários fluxos: entrada padrão (apontada por stdin), saída padrão (apontada por stdout) e erro padrão (apontado por stderr). Esses fluxos são direcionados para o console (teclado e tela) por padrão. Use freopen para redirecionar stdin, stdoutou stderr para um arquivo de disco ou um dispositivo.
Os arquivos abertos usando as rotinas de fluxo são armazenados em buffer por padrão. As stdout funções e stderr são liberadas sempre que estão cheias ou, se você estiver escrevendo em um dispositivo de caracteres, após cada chamada de biblioteca. Se um programa for encerrado de forma anormal, os buffers de saída podem não ser liberados, resultando em perda de dados. Use fflush ou _flushall para garantir que o buffer associado a um arquivo especificado seja liberado para o sistema operacional ou que todos os buffers abertos sejam liberados. O sistema operacional pode armazenar dados em cache antes de gravá-los no disco. O recurso de confirmação em disco garante que o conteúdo do buffer liberado não seja perdido se houver uma falha do sistema.
Há duas maneiras de confirmar o conteúdo do buffer no disco:
- Link com o arquivo COMMODE. OBJ para definir um sinalizador de compromisso global. A configuração padrão do sinalizador global é
n, para "no-commit". - Defina o sinalizador de modo como
ccomfopenou_fdopen.
Qualquer arquivo aberto especificamente com o c sinalizador ou o n se comporta de acordo com o sinalizador, independentemente do estado do sinalizador global commit/no-commit.
Se o programa não fechar explicitamente um fluxo, o fluxo será fechado automaticamente quando o programa for encerrado. No entanto, você deve fechar um fluxo quando o programa terminar com ele, pois o número de fluxos que podem ser abertos ao mesmo tempo é limitado. Consulte _setmaxstdio para obter informações sobre este limite.
A entrada pode seguir a saída diretamente somente com uma chamada interveniente para fflush ou para uma função de posicionamento de arquivo (fseek, fsetpos, ou rewind). A entrada pode ser seguida pela saída sem uma chamada interveniente para uma função de posicionamento de arquivo, se a operação de entrada encontrar o final do arquivo.
Ver também
Entrada e saída
Rotinas de tempo de execução Universal C por categoria