fclose
, _fcloseall
Cierra una secuencia (fclose
) o cierra todas las secuencias abiertas (_fcloseall
).
Sintaxis
int fclose(
FILE *stream
);
int _fcloseall( void );
Parámetros
stream
Puntero a la estructura FILE
.
Valor devuelto
fclose
devuelve 0 si la secuencia se cierra correctamente. _fcloseall
devuelve el número total de secuencias cerradas. Ambas funciones devuelven EOF
para indicar un error.
Comentarios
La función fclose
cierra stream
. Si stream
es NULL
, se invoca el controlador de parámetros no válidos, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, fclose
establece errno
en EINVAL
y devuelve EOF
. Se recomienda comprobar siempre el stream
puntero antes de llamar a esta función.
Para obtener más información sobre los códigos de retorno, vea errno
, _doserrno
, _sys_errlist
y _sys_nerr
.
La función _fcloseall
cierra todas las secuencias excepto stdin
, stdout
, stderr
(y en MS-DOS, _stdaux
y _stdprn
). También cierra y elimina los archivos temporales creados con tmpfile
. En ambas funciones, se vacían todos los búferes asociados a la secuencia antes de cerrarla. Los búferes asignados por el sistema se liberan cuando se cierra la secuencia. Los búferes asignados por el usuario con setbuf
y setvbuf
no se liberan de forma automática.
Nota:
Cuando fclose
o _fcloseall
las funciones se usan para cerrar una secuencia, también se cierran el descriptor de archivo subyacente y el identificador de archivo del sistema operativo (o socket). Por lo tanto, si el archivo se abrió originalmente como identificador de archivo o descriptor de archivo y está cerrado con fclose
, no llame _close
también a para cerrar el descriptor de archivo y no llame a la función CloseHandle
Win32 para cerrar el identificador de archivo.
fclose
y _fcloseall
incluyen código como protección ante interferencias de otros subprocesos. Para versiones de fclose
sin bloqueo, consulte _fclose_nolock
.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Función | Encabezado necesario |
---|---|
fclose |
<stdio.h> |
_fcloseall |
<stdio.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
Vea el ejemplo de fopen
.
Consulte también
E/S de secuencia
_close
_fdopen
, _wfdopen
fflush
fopen
, _wfopen
freopen
, _wfreopen