fclose
, _fcloseall
Fecha um fluxo (fclose
) ou fecha todos os fluxos abertos (_fcloseall
).
Sintaxe
int fclose(
FILE *stream
);
int _fcloseall( void );
Parâmetros
stream
Ponteiro para a estrutura FILE
.
Valor retornado
fclose
retorna 0 se o fluxo for fechado com êxito. _fcloseall
retorna o número total de fluxos fechados. Ambas as funções retornam EOF
para indicar um erro.
Comentários
A função fclose
fecha stream
. Se stream
for NULL
, o manipulador de parâmetro inválido será chamado, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, fclose
definirá errno
para EINVAL
e retornará EOF
. É recomendável que você sempre verifique o stream
ponteiro antes de chamar essa função.
Para obter mais informações sobre códigos de retorno, confira errno
, _doserrno
, _sys_errlist
e _sys_nerr
.
A função _fcloseall
fecha todos os fluxos exceto stdin
, stdout
, stderr
(e, no MS-DOS, _stdaux
e _stdprn
). Ela também fecha e exclui todos os arquivos temporários criados por tmpfile
. Em ambas as funções, todos os buffers associados com o fluxo são liberados antes do fechamento. Buffers alocados pelo sistema são liberados quando o fluxo está fechado. Buffers atribuídos pelo usuário com setbuf
e setvbuf
não são liberados automaticamente.
Observação
Quando fclose
as funções or _fcloseall
são usadas para fechar um fluxo, o descritor de arquivo subjacente e o identificador de arquivo do sistema operacional (ou soquete) também são fechados. Portanto, se o arquivo foi originalmente aberto como um identificador de arquivo ou descritor de arquivo e é fechado com fclose
, não chame _close
também para fechar o descritor de arquivo; e não chame a função CloseHandle
Win32 para fechar o identificador de arquivo.
fclose
e _fcloseall
incluem o código para proteção contra interferência de outros threads. Para uma versão sem bloqueio de um fclose
, consulte _fclose_nolock
.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Requisitos
Função | Cabeçalho necessário |
---|---|
fclose |
<stdio.h> |
_fcloseall |
<stdio.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
Confira o exemplo de fopen
.
Confira também
E/S de fluxo
_close
_fdopen
, _wfdopen
fflush
fopen
, _wfopen
freopen
, _wfreopen