CLOSE(2)

NOMBRE
close - cierra un descritor de fichero

SINOPSIS
#include <unistd.h>

int close(int fd);

DESCRIPCIÓN
close cierra un descriptor de fichero de forma que no se refiera a fichero alguno y pueda reciclarse para nuevo uso.

Si fd es la última copia de cierto descriptor de fichero los recursos asociados con dicho descriptor quedan liberados; por ejemplo cualquier candado (lock) activo se elimina y si el descriptor fuera la última referencia a un fichero que haya sido borrada mediante unlink entonces el fichero también se borra.

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

ERRORES

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

CONFORMA CON
SVID, AT&T, POSIX, X/OPEN, BSD 4.3

NOTA
El no chequear por el valor regresado por close es un error de programación común y sin embargo serio. Aquellas implementaciones de sistemas de ficheros que usan la técnica conocida como ``write-behind'' o (escribe-detrás) a fin de incrementar el rendimiento pueden dan lugar a que write(2) tenga éxito a pesar de que no se halla escrito dato alguno aún. El estatus de error puede reportarse durante siguientes operaciones de escritura (write), pero está garantizado que el error se reporte al cerrar el fichero. No chequear el valor regresado cuando se cierre un fichero puede da lugar a la perdida silenciosa de datos. Esto se observa especialmente en NFS y con las cuotas de discos.

VÉASE
open(2), fcntl(2), shutdown(2), unlink(2), fclose(3).