Поделиться через


Дескрипторы файлов

Когда файл открывается процессом с помощью функции CreateFile , с ним связывается дескриптор файла до завершения процесса или закрытия дескриптора с помощью функции CloseHandle . Дескриптор файла используется для идентификации файла во многих вызовах функций.

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

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