bionic (2) close.2.gz

Provided by: manpages-es_1.55-10_all bug

NOMBRE

       close - cierra un descriptor de fichero

SINOPSIS

       #include <unistd.h>

       int close(int fd);

DESCRIPCIÓN

       close  cierra  un  descriptor  de  fichero  de  forma  que  ya no se refiera a fichero alguno y pueda ser
       reutilizado. Cualesquiera bloqueos mantenidos sobre el fichero con el que estaba  asociado,  y  propiedad
       del  proceso,  son  eliminados  (sin  importar  qué  descriptor  de fichero fue utilizado para obtener el
       bloqueo).

       Si fd es la última copia de cierto descriptor de fichero, los recursos asociados con dicho descriptor son
       liberados;  si  el  descriptor  fuera  la última referencia a un fichero que haya sido eliminada mediante
       unlink(2) entonces el fichero es borrado.

VALOR DEVUELTO

       close devuelve 0 en caso de éxito y -1 si ocurre algún error.

ERRORES

       EBADF  fd no es un descriptor de fichero abierto válido.

       EINTR  La llamada close() fue interrumpida por una señal.

       EIO    Ocurrió un error de E/S.

CONFORME A

       SVID, AT&T, POSIX, X/OPEN, BSD 4.3.  SVr4 documenta una condición de error ENOLINK adicional.

NOTA

       El no comprobar el valor devuelto por close es un error de programación común y  no  obstante  serio.  Es
       bastante  posible que los errores de una operación write(2) previa sean informados por primera vez con la
       última llamada close.

       Una llamada a close con éxito no garantiza que los datos hayan sido guardados a disco con éxito,  ya  que
       el  núcleo  aplaza  las escrituras. No es habitual en un sistema de ficheros vaciar los buffers cuando se
       cierra el flujo de datos. Si necesita asegurarse de  que  los  datos  sean  físicamente  almacenados  use
       fsync(2).   (Ésto  dependerá  del hardware de disco.)  No comprobar el valor devuelto cuando se cierra un
       fichero puede dar lugar a una pérdida silenciosa de datos.  Esto se observa especialmente en  NFS  y  con
       las cuotas de discos.

VÉASE TAMBIÉN

       open(2), fcntl(2), shutdown(2), unlink(2), fclose(3), fsync(2)