Закрытие файла

Закрытие файла

Для закрытия объектов любого типа, объявления недействительными их дескрипторов и освобождения системных ресурсов почти во всех случаях используется одна и та же универсальная функция. Исключения из этого правила будут оговариваться отдельно. Закрытие дескриптора сопровождается уменьшением на единицу счетчика ссылок на объект, что делает возможным удаление таких не хранимых постоянно (nonpersistent) объектов, как временные файлы или события. При выходе из программы система автоматически закрывает все открытые дескрипторы, однако лучше все же, чтобы программа самостоятельно закрывала свои дескрипторы перед тем, как завершить работу.

Попытки закрытия недействительных дескрипторов или повторного закрытия одного и того же дескриптора приводят к исключениям (исключения и обработка исключений обсуждаются в главе 4). Не только излишне, но и не следует закрывать дескрипторы стандартных устройств, которые обсуждаются в разделе "Стандартные устройства и консольный ввод/вывод" далее в этой главе. 

BOOL CloseHandle(HANDLE hObject)

Возвращаемое значение: в случае успешного выполнения функции — TRUE, иначе — FALSE. 

Функции UNIX, сопоставимые с рассмотренными выше, отличаются от них в нескольких отношениях. Функция (системный вызов) UNIX open возвращает целочисленный дескриптор (descriptor) файла, а не дескриптор типа HANDLE, причем для указания всех параметров доступа, разделения и создания файлов, а также атрибутов и флагов используется единственный целочисленный параметр oflag. Возможные варианты выбора, доступные в обеих системах, перекрываются, однако набор опций, предлагаемый Windows, отличается большим разнообразием.

В UNIX отсутствует параметр, эквивалентный параметру dwShareMode. Файлы UNIX всегда являются разделяемыми.

В обеих системах при создании файла используется информация, касающаяся его защиты. В UNIX для задания хорошо известных разрешений на доступ к файлу для владельца, членов группы и прочих пользователей используется аргумент mode.

Функция close, хотя ее и можно сопоставить с функцией CloseHandle, отличается от последней меньшей универсальностью.

Функции библиотеки С, описанные в заголовочном файле <stdio.h>, используют объекты FILE, которые можно поставить в соответствие дескрипторам (дисковые файлы, терминалы, ленточные устройства и тому подобные), связанным с потоками. Параметр mode функции fopen позволяет указать, должны ли содержащиеся в файле данные обрабатываться как двоичные или как текстовые. Имеются также опции открытия файла в режиме "только чтение", обновления файла, присоединения к другому файлу и так далее. Функция freopen обеспечивает возможность повторного использования объектов FILE без их предварительного закрытия. Средства для задания параметров защиты стандартной библиотекой С не предоставляются.

Для закрытия объектов типа FILE предназначена функция fclose. Имена большинства функций стандартной библиотеки С, предназначенных для работы с объектами FILE, снабжены префиксом "f".

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.12.4 Закрытие каналов

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

5.12.4 Закрытие каналов При закрытии канала процесс выполняет ту же самую процедуру, что и при закрытии обычного файла, за исключением того, что ядро, прежде чем освободить индекс канала, выполняет специальную обработку. Оно уменьшает количество процессов чтения из канала


Закрытие файлов

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Закрытие файлов После того, как вы поработали с файлом, его надо закрыть. Класс CFile имеет для этого специальный метод Close:virtual void Close() throw(CFileException);Метод закрывает файл. Если вы создали объект класса CFile и открыли файл, а затем объект удаляется, то связанный с ним файл


Установка размера файла, инициализация файла и разреженные файлы

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Установка размера файла, инициализация файла и разреженные файлы Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла. В случае расширения файла


10.6 Закрытие соединения

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

10.6 Закрытие соединения Нормальное завершение соединения выполняется с помощью той же процедуры тройного рукопожатия, что и при открытии соединения. Каждая из сторон может начать закрытие соединения по следующему сценарию:A: "Я закончил работу. Данных для пересылки


Закрытие файла

Из книги Справочник по PHP автора

Закрытие файла fcloseЗакрывает файл, открытый предварительно функцией fopen().Синтаксис:int fclose(int $fp)Возвращает false, если файл закрыть не удалось (например, что-то с ним случилось или же разорвалась связь с удаленным хостом). В противном случае возвращает значение "истина".Всегда


11.2.2. Закрытие файлов

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

11.2.2. Закрытие файлов Одной из операций, которые одинаковы для файлов всех типов, является закрытие файла. Ниже показано, как закрыть файл.#include <unistd.h>int close(int fd);Очевидно, что это базовая операция. Однако есть один важный момент, касающийся закрытия файлов, о котором


Закрытие потоков

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Закрытие потоков Функции fclose и fcloseall закрывают поток или потоки. Функция fclose закрывает один заданный поток, fcloseall — все потоки, кроме потоков stdin, stdout, stderr, stdaux, stdprn.Если программа не выполняет закрытия потоков, потоки автоматически закрываются, когда программа завершается


Закрытие файлов

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

Закрытие файлов Функция close закрывает открытые файлы. Открытые файлы также автоматически закрываются при неаварийном завершении


Закрытие процесса

Из книги PGP: Кодирование и шифрование информации с открытым ключом. автора Левин Максим

Закрытие процесса Чтобы закрыть процесс, используется метод Kill, код которого приведен в листинге 7.29.Листинг 7.29public void Kill() { IntPtr hProcess; hProcess = OpenProcess(PROCESS_TERMINATE, false, (int) processId); if (hProcess != (IntPtr) INVALID_HANDLE_VALUE) {  bool bRet;  bRet = TerminateProcess(hProcess, 0);  CloseHandle(hProcess); }}Данный метод также использует


Закрытие PGP диска.

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Закрытие PGP диска. Закройте все программы и файлы, имеющиеся на диске PGP, т.к. невозможно закрыть диск, если файлы на этом диске до сих пор еще открыты. Теперь зайдите в мой компьютер выделите мышкой диск PGP, нажмите на правую кнопку мышки и выберите команду <unmount> в


Закрытие файла: fclose( )

Из книги 1С: Бухгалтерия 8.2. Понятный самоучитель для начинающих автора Гладкий Алексей Анатольевич

Закрытие файла: fclose( ) Наш пример показывает, как закрывать файл: fclose(in);Просто используйте функцию fclose( ). Заметим, что аргументом ее является in, указатель на файл, а не test, имя файла.      Для программы, более серьезной, чем эта, следовало бы посмотреть, успешно ли закрыт файл.


12. Закрытие продаж

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

12. Закрытие продаж Как только 36 часов истекли, вешаем на сайт сообщение: «Регистрация закончена». Вот что вы пропустили. Можно сказать, вам не повезло. Рассказываем о бонусах, про которые в тексте рекламы не говорили – чтобы для людей, которые не успели, это стало уроком. Вы


Б.1.2. Закрытие файла

Из книги Как приручить компьютер за несколько часов автора Ремнева Ирина

Б.1.2. Закрытие файла По окончании работы с файлом его следует закрыть с помощью функции close(). В ряде случаев, например в программе, показанной в листинге Б.1, нет необходимости вызывать данную функцию явно, так как ОС Linux автоматически закрывает все открытые файлы по


Закрытие окна

Из книги автора

Закрытие окна При работе экран постепенно загромождается открытыми окнами программ. При этом становится трудно разобраться в них. Поэтому когда вы заканчиваете работу с программой, то окно с ней стоит закрыть.При нажатии на кнопку Закрытие окна окно исчезает из поля