Как заблокировать файл в Windows? - PullRequest
2 голосов
/ 05 мая 2010

Как заблокировать файл в Windows, чтобы этот файл можно было открыть / прочитать / записать только одним процессом?

Я обнаружил, что файл можно заблокировать с помощью CreateFile, установив флаг 0 на dwShareMode. Это работает, но только возвращенный дескриптор может быть использован для работы с файлом. Но я хочу иметь возможность заблокировать файл для других процессов и в то же время создать несколько дескрипторов в моем процессе.

Пожалуйста, помогите мне решить эту проблему или дайте несколько советов ...

Ответы [ 2 ]

2 голосов
/ 05 мая 2010

Зачем вам нужно создавать один и тот же файл дважды в одном процессе? Вы можете использовать один дескриптор во всех функциях ввода / вывода вашего процесса без повторного открытия файла. Если вам нужно передать дескриптор другому процессу, вы можете использовать функцию DuplicateHandle.

1 голос
/ 05 мая 2010

Я не думаю, что вы можете сделать это. Самое близкое, что вы можете получить, это использовать CreateFile, чтобы открыть / заблокировать файл в первый раз, а затем использовать DuplicateHandle, чтобы создать несколько дескрипторов из уже имеющегося у вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...