Provided by: manpages-es_1.55-10_all 

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)
Linux 13 Diciembre 2001 CLOSE(2)