close

Матеріал з Вікіпедії — вільної енциклопедії.
Версія від 15:53, 12 травня 2020, створена BunykBot (обговорення | внесок) (заміна застарілого тегу source)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

close — функція, призначеня для закриття файла і вивільнення асоційованого з ним файлового дескриптора, затверджена стандартом POSIX. У UNIX-подібних операційних системах з монолітним ядром реалізується у вигляді системного виклика[1]. У мікроядерних системах (таких, як QNX) може реалізовуватись у вигляді звичайної бібліотечної функції.[2]

Виклик функції close(), як правило, спричиняє синхронізацію внутрішніх файлових буферів, оновлення метаданих файлу, звільнення ресурсів, асоційованих з файловим дескриптором, а потім і самого дескриптора. Як правило, всі відкриті програмою файли автоматично закриваються, коли ця програма завершується (нормально або аварійно).[джерело?]

Означення POSIX

[ред. | ред. код]

Стандарт POSIX визначає[3], що для використання close() у заголовному файлі unistd.h повинен бути наступний прототип:

 int close (int filedes);

У випадку успішного завершення функція close() повертає нульове значення. Якщо сталася помилка, повертається -1, і змінній errno надається значення помилки. Можливі коди помилок:

EBADF
Аргумент, переданий функції, не є дескриптором відкритого файлу
EINTR
Роботу функції перервав сигнал
EIO
Сталася помилка вводу-виводу

Посилання

[ред. | ред. код]