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

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

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

BOOL CloseHandle (HANDLE hObject)

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

TRUE, иначе-FALSE.

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

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

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

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

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

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








Дата добавления: 2015-08-01; просмотров: 637;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.