Unix Man (Справочное руководство)

CLOSE(2)


CLOSE(2)

НАЗВАНИЕ


close - закрыть дескриптор файла

СИНТАКСИС

int close (fildes) int fildes;

ОПИСАНИЕ


Аргумент fildes - это дескриптор файла, полученный в результате выполнения системных вызовов creat, open, dup, fcntl или pipe. Системный вызов close закрывает этот дескриптор. Все блокировки файла, ассоциированного с дескриптором fildes, принадлежащие вызывающему процессу, удаляются.

Если закрывается файл-псевдоустройство [см. ] и вызывающий процесс предварительно зарегистрирован для получения сигнала SIGPOLL [см. и ] в связи с событиями, ассоциированными с этим файлом [см. I_SETSIG в ], регистрация событий применительно к упомянутым процессу и файлу отменяется.

Последний вызов close для потока, связанного с дескриптором fildes, приводит к ликвидации потока. Если флаг O_NDELAY не установлен и не было сигналов, предназначенных для потока, системный вызов close ждет до 15 секунд, пока все модули и драйверы завершат вывод, и только после этого ликвидирует поток. Если флаг O_NDELAY установлен или есть отложенные сигналы, системный вызов close не ждет окончания вывода и ликвидирует поток немедленно.

Системный вызов close завершается неудачей и указанный дескриптор файла не закрывается, если выполнено хотя бы одно из следующих условий:

[EBADF] Аргумент fildes не является корректным дескриптором открытого файла. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [ENOLINK] Аргумент fildes указывает на удаленный компьютер, связи с которым в данный момент нет.

СМ. ТАКЖЕ


, , , , , , , , .

в Справочнике администратора.

ДИАГНОСТИКА


При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.



Содержание раздела