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