Una llamada de cierre del sistema es una llamada del sistema utilizada para cerrar un descriptor de archivo por el núcleo . Para la mayoría de los sistemas de archivos , un programa finaliza el acceso a un archivo en un sistema de archivos utilizando la llamada de cierre del sistema. Esto vacía los búferes de archivos, actualiza los metadatos del archivo , que pueden incluir un indicador de fin de archivo en los datos; desasigna recursos asociados con el archivo (incluido el descriptor de archivo ) y actualiza la tabla de archivos en uso de todo el sistema. Algunos lenguajes de programación mantienen una estructura de datos de archivos abiertos por su biblioteca de tiempo de ejecución y pueden cerrarse cuando el programa finaliza. Esta práctica se conoce como adquisición de recursos en inicialización (RAII). Algunos sistemas operativos invocarán la llamada close
al sistema en los archivos que tiene un programa si este finaliza. Algunos sistemas operativos invocarán la close
llamada al sistema como parte de una recuperación del sistema operativo como resultado de una falla del sistema.
La llamada de cierre está estandarizada por la especificación POSIX
int close ( int archivos ); int fclose ( ARCHIVO * flujo );
La función devuelve cero para indicar que el archivo se cerró correctamente. Si se produce algún error, se devuelve un valor de -1 y se configura errno de forma adecuada.
Los errores que pueden ocurrir incluyen:
EBADF
EINTR
EIO