stringtranslate.com

закрыть (системный вызов)


Системный вызов close — это системный вызов, используемый ядром для закрытия файлового дескриптора . Для большинства файловых систем программа завершает доступ к файлу в файловой системе с помощью системного вызова close. Это очищает буферы файлов, обновляет метаданные файла , которые могут включать в себя индикатор конца файла в данных; освобождает ресурсы, связанные с файлом (включая дескриптор файла ), и обновляет общесистемную таблицу используемых файлов. Некоторые языки программирования поддерживают структуру данных файлов, открытых их библиотекой времени выполнения , и могут закрываться при завершении программы. Эта практика известна как получение ресурсов и инициализация (RAII). Некоторые операционные системы будут вызывать файлы, удерживаемые программой, если она завершается. Некоторые операционные системы будут вызывать системный вызов как часть восстановления операционной системы в результате системного сбоя.closeclose

Определение POSIX библиотеки C

Закрытый вызов стандартизирован спецификацией POSIX .

int close ( int filedes ); int fclose ( FILE * stream );      

Функция возвращает ноль, чтобы указать, что файл был успешно закрыт. Если происходит какая-либо ошибка, возвращается значение -1, а errno устанавливается соответствующим образом.

Возможны следующие ошибки:

EBADF
Предоставленный аргумент не является допустимым дескриптором файла.
EINTR
Вызов функции был прерван сигналом
EIO
Произошла ошибка ввода-вывода

Ссылки

Внешние ссылки