CLOSE(2) CLOSE(2) НАЗВАНИЕ close - закрыть дескриптор файла СИНТАКСИС |int close (fildes) |int fildes; ОПИСАНИЕ Аргумент fildes - это дескриптор файла, полученный в результате выполнения системных вызовов creat, open, dup, fcntl или pipe. Системный вызов close закрывает этот дескриптор. Все блокировки файла, ассоциированного с дескриптором fildes, принадлежащие вызывающему про- цессу, удаляются. Если закрывается ПОТОКОВЫЙ файл [см. intro(2)] и вызы- вающий процесс предварительно зарегистрирован для полу- чения сигнала SIGPOLL [см. signal(2) и sigset(2)] в связи с событиями, ассоциированными с этим файлом [см. I_SETSIG в streamio(7)], регистрация событий примени- тельно к упомянутым процессу и файлу отменяется. Последний вызов close для потока, связанного с дескрип- тором fildes, приводит к ликвидации потока. Если флаг O_NDELAY не установлен и не было сигналов, предназна- ченных для потока, системный вызов close ждет до 15 се- кунд, пока все модули и драйверы завершат вывод, и только после этого ликвидирует поток. Если флаг O_NDELAY установлен или есть отложенные сигналы, сис- темный вызов close не ждет окончания вывода и ликвиди- рует поток немедленно. Системный вызов close завершается неудачей и указанный дескриптор файла не закрывается, если выполнено хотя бы одно из следующих условий: [EBADF] Аргумент fildes не является корректным дескриптором открытого файла. [EINTR] Во время выполнения системного вызова пе рехвачен сигнал. [ENOLINK] Аргумент fildes указывает на удаленный компьютер, связи с которым в данный момент нет. СМ. ТАКЖЕ creat(2), dup(2), exec(2), fcntl(2), intro(2), open(2), pipe(2), signal(2), sigset(2). streamio(7) в Справочнике администратора. ДИАГНОСТИКА При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивает ся код ошибки.