Provided by:
manpages-es_1.55-10_all 
NOMBRE
close - cierra un descriptor de fichero
SINOPSIS
#include <unistd.h>
int close(int fd);
DESCRIPCI'ON
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 que descriptor de fichero fue
utilizado para obtener el bloqueo).
Si fd es la ultima copia de cierto descriptor de fichero, los recursos
asociados con dicho descriptor son liberados; si el descriptor fuera la
ultima referencia a un fichero que haya sido eliminada mediante
unlink(2) entonces el fichero es borrado.
VALOR DEVUELTO
close devuelve 0 en caso de exito y -1 si ocurre algun error.
ERRORES
EBADF fd no es un descriptor de fichero abierto valido.
EINTR La llamada close() fue interrumpida por una senal.
EIO Ocurrio un error de E/S.
CONFORME A
SVID, AT&T, POSIX, X/OPEN, BSD 4.3. SVr4 documenta una condicion de
error ENOLINK adicional.
NOTA
El no comprobar el valor devuelto por close es un error de programacion
comun y no obstante serio. Es bastante posible que los errores de una
operacion write(2) previa sean informados por primera vez con la ultima
llamada close.
Una llamada a close con exito no garantiza que los datos hayan sido
guardados a disco con exito, ya que el nucleo 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
fisicamente almacenados use fsync(2). (Esto dependera del hardware de
disco.) No comprobar el valor devuelto cuando se cierra un fichero
puede dar lugar a una perdida silenciosa de datos. Esto se observa
especialmente en NFS y con las cuotas de discos.
V'EASE TAMBI'EN
open(2), fcntl(2), shutdown(2), unlink(2), fclose(3), fsync(2)