A системный вызов close - это системный вызов, используемый для закрытия файлового дескриптора ядром . Для большинства файловых систем программа завершает доступ к файлу в файловой системе, используя системный вызов close. Это очищает файловые буферы, обновляет метаданные файла , которые могут включать в себя и индикатор конца файла в данных; освобождает ресурсы, связанные с файлом (включая дескриптор файла ), и обновляет общесистемную таблицу используемых файлов. Некоторые языки программирования поддерживают структуру данных файлов, открытых их библиотекой времени выполнения, и могут закрываться при завершении программы. Эта практика известна как получение ресурса - инициализация (RAII). Некоторые операционные системы будут вызывать close
для файлов, содержащихся в программе, если она завершается. Некоторые операционные системы вызывают системный вызов close
как часть восстановления операционной системы в результате системного сбоя.
Вызов close стандартизирован спецификацией POSIX
int close (int filedes); int fclose (ФАЙЛ * поток);
Функция возвращает ноль, чтобы указать, что файл был успешно закрыт. Если возникает какая-либо ошибка, возвращается значение -1 и соответствующим образом устанавливается errno.
Возможные ошибки:
EBADF
EINTR
EIO