Provided by:
manpages-es_1.55-8_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)