Section: Manual del Programador de Linux (2)
Updated: 14 Abril 1996
Index Return to Main
Contents
close - cierra un descriptor de fichero
#include <unistd.h> int close(int fd);
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.
devuelve 0 en caso de éxito y -1 si ocurre algún error.
SVID, AT&T, POSIX, X/OPEN, BSD 4.3. SVr4 documenta una condición de error ENOLINK adicional.
El no comprobar el valor devuelto por close es un error de programación común y no obstante serio. Aquellas implementaciones de sistemas de ficheros que usan técnicas tales como la conocida por ``write-behind'' (``escribe por detrás'') a fin de incrementar el rendimiento pueden resultar en que write(2) tenga éxito aunque aún no se hayan escrito los datos. El estado de error puede ser informado durante una posterior operación de escritura, pero está garantizado que será informado al cerrar el fichero. 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.
(2), fcntl(2), shutdown(2), unlink(2), fclose(3).
This document was created by man2html, using
the manual pages.
Time: 06:16:20 GMT, January 22, 2005