Дескрипторы файла
Когда файл открывается процессом, используя функцию CreateFile, дескриптор файла (file handle) связан с ним до тех пор, пока или процесс не закончит работу, или не будет закрыт дескриптор, используя функцию CloseHandle. Дескриптор файла используется, чтобы идентифицировать файл во многих вызовах функции.
Каждый дескриптор файла и файловый объект вообще уникальны для каждого процесса, который открывает файл - единственные исключения этому - то, что когда дескриптор файла, поддерживается процессом путем дублирования, или когда дочерний процесс наследует дескрипторы файла родительского процесса. В этих ситуациях, эти дескрипторы файла уникальны, но показывают единственный, совместно используемый файловый объект. Чтобы получить дополнительную информацию о дублировании дескрипторов файла, поддерживаемых процессами см. описание функции DuplicateHandle.
Обратите внимание! на то, что в то время, когда дескрипторы файла являются обычно частными для процесса, данные файла, на которые указывают эти дескрипторы файла такими не являются. Поэтому, процессы и потоки, которые совместно используют один и тот же файл, должны синхронизировать их доступ. Для большинства операций с файлом, процесс идентифицирует файл через посредство его совокупности частных дескрипторов. |