fclose, _fcloseallfclose, _fcloseall

Cierra una secuencia (fclose) o cierra todas las secuencias abiertas (_fcloseall).Closes a stream (fclose) or closes all open streams (_fcloseall).

SintaxisSyntax

int fclose(
   FILE *stream
);
int _fcloseall( void );

ParámetrosParameters

misionesstream
Puntero a la estructura FILE.Pointer to FILE structure.

Valor devueltoReturn Value

fclose devuelve 0 si la secuencia se ha cerrado correctamente.fclose returns 0 if the stream is successfully closed. _fcloseall devuelve el número total de secuencias cerradas._fcloseall returns the total number of streams closed. Ambas funciones devuelven EOF para indicar un error.Both functions return EOF to indicate an error.

ObservacionesRemarks

La función fclose cierra la secuencia.The fclose function closes 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.If stream is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. Si la ejecución puede continuar, fclose establece errno en EINVAL y devuelve EOF.If execution is allowed to continue, fclose sets errno to EINVAL and returns EOF. Se recomienda comprobar siempre el puntero de secuencia antes de llamar a esta función.It is recommended that the stream pointer always be checked prior to calling this function.

Consulte _doserrno, errno, _sys_errlist y _sys_nerr para obtener más información sobre estos y otros códigos de error.See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, error codes.

La función _fcloseall cierra todas las secuencias abiertas excepto stdin, stdout, stderr (y, en MS-dos, _stdaux y _stdprn).The _fcloseall function closes all open streams except stdin, stdout, stderr (and, in MS-DOS, _stdaux and _stdprn). También cierra y elimina los archivos temporales creados por tmpfile.It also closes and deletes any temporary files created by tmpfile. En ambas funciones, se vacían todos los búferes asociados a la secuencia antes de cerrarla.In both functions, all buffers associated with the stream are flushed prior to closing. Los búferes asignados por el sistema se liberan cuando se cierra la secuencia.System-allocated buffers are released when the stream is closed. Los búferes asignados por el usuario con setbuf y setvbuf ( no se liberan automáticamente.Buffers assigned by the user with setbuf and setvbuf are not automatically released.

Nota: Cuando estas funciones se usan para cerrar una secuencia, se cierran el descriptor de archivo subyacente y el identificador de archivos del SO (o socket), además de la secuencia.Note: When these functions are used to close a stream, the underlying file descriptor and OS file handle (or socket) are closed, as well as the stream. Por lo tanto, si el archivo se abrió originalmente como un identificador de archivo o un descriptor de archivo y se cierra con fclose, no llame también _close para cerrar el descriptor de archivo; no llame a la función de Win32 CloseHandle para cerrar el identificador de archivo.Thus, if the file was originally opened as a file handle or file descriptor and is closed with fclose, do not also call _close to close the file descriptor; do not call the Win32 function CloseHandle to close the file handle.

fclose y _fcloseall incluyen código para proteger frente a interferencias de otros subprocesos.fclose and _fcloseall include code to protect against interference from other threads. Para obtener una versión que no sea de bloqueo de un fclose, vea _fclose_nolock.For non-locking version of a fclose, see _fclose_nolock.

De forma predeterminada, el ámbito de este estado global de esta función es la aplicación.By default, this function's global state is scoped to the application. Para cambiar esto, vea estado global en CRT.To change this, see Global state in the CRT.

RequisitosRequirements

FunciónFunction Encabezado necesarioRequired header
fclosefclose <stdio.h>
_fcloseall_fcloseall <stdio.h>

Para obtener información adicional sobre compatibilidad, consulte Compatibilidad.For additional compatibility information, see Compatibility.

EjemploExample

Consulte el ejemplo de fopen.See the example for fopen.

Consulta tambiénSee also

E/S de secuenciaStream I/O
_close_close
_fdopen, _wfdopen_fdopen, _wfdopen
fflushfflush
fopen, _wfopenfopen, _wfopen
freopen, _wfreopenfreopen, _wfreopen