Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Основными операциями с файлами являются: создание, открытие, чтение, запись, удаление и др. В ряде случаев возникает необходимость параллельного доступа к файловым объектам из различных потоков выполнения. В этом случае возникает необходимость синхронизации действий потоков.

Прежде чем файл будет использоваться его необходимо открыть или создать. Создать (открыть) файл можно системным вызовом CreateFile.

Синтаксис:

HANDLE WINAPI CreateFile(

LPCTSTR lpFileName,

DWORD dwDesiredAccess,

DWORD dwShareMode,

LPSECURITY_ATTRIBUTES lpSecurityAttributes,

DWORD dwCreationDisposition,

DWORD dwFlagsAndAttributes,

HANDLE hTemplateFile

);

Параметры:

lpFileName [in] Имя файла или устройства, который будет создан или открыт.

dwDesiredAccess [in] Запрашиваемый режим доступа: чтение (GENERIC_READ), запись (GENERIC_WRITE), чтение-запись (GENERIC_READ | GENERIC_WRITE).

dwShareMode [in] Определяет режим разделения файла между потоками выполнения (таблица 4.1), может устанавливаться как комбинация по ИЛИ.

Таблица 4.1 – Допустимые режимы разделения доступа

Значение Описание
0x00000000 Только создавший (открывший) процесс может получить доступ к файлу.
FILE_SHARE_DELETE 0x00000004 Разрешает открытие файла с целью удаления процессом отличным от процесса открывшего файл.
FILE_SHARE_READ 0x00000001 Разрешает открытие файла с целью чтения процессом отличным от процесса открывшего файл.
FILE_SHARE_WRITE 0x00000002 Разрешает открытие файла с целью записи процессом отличным от процесса открывшего файл.

lpSecurityAttributes [in, optional] Адрес структуры типа SECURITY_ATTRIBUTES, которая определяет атрибуты защиты. Этот параметр может быть NULL.

dwCreationDisposition [in] Действие с файлом при его существовании или отсутствии.

Таблица 4.2 – Допустимые действия с файлом

Значение Описание
CREATE_ALWAYS Создает новый файл (всегда). Если файл существует и возможна запись, то он перезаписывается, функция завершается успехом и в последнюю ошибку записывается код ERROR_ALREADY_EXISTS (183).
CREATE_NEW Создает новый файл, если он не существует. В противном случае вызов проваливается и в последнюю ошибку записывается код ERROR_ALREADY_EXISTS (183).
OPEN_ALWAYS Открывает существующий файл (всегда). Если файл существует, то он открывается, функция завершается успехом и в последнюю ошибку записывается код ERROR_ALREADY_EXISTS (183). Если файл не существует, то он создается.
OPEN_EXISTING Открывает существующий файл, только если файл существует. В противном случае вызов проваливается и в последнюю ошибку записывается код ERROR_FILE_NOT_FOUND (2).

dwFlagsAndAttributes [in] Флаги и атрибуты файла. Атрибуты зависят от используемой файловой системы. В большинстве случаев достаточно указать FILE_ATTRIBUTE_NORMAL. Атрибуты могут быть в любой комбинации по ИЛИ с флагами. Флаги определяют расширение операций ввода-вывода с файлом, такие как: режим кеширования, синхронный асинхронный ввод-вывод и др. Для асинхронного доступа к файлу должен быть установлен флаг FILE_FLAG_OVERLAPPED.

hTemplateFile [in, optional] Дескриптор временного файла. Данный параметр может быть NULL.

Возвращаемое значение дескриптор файла, устройства, именованного канала или почтового слота. Если вызов провален, то возвращаемое значение INVALID_HANDLE_VALUE.

Запись в файл осуществляется системным вызовом WriteFile.

Синтаксис:

 




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


Дата добавления: 2015-01-03; Просмотров: 242; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.