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, 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