Как заблокировать файл в Windows, используя C ++? - PullRequest
3 голосов
/ 26 июля 2011

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

Если это возможно, пожалуйста, сообщите мнекакое-то fcntl-подобное решение (решение, которое блокирует файл с его дескриптором).Но в любом случае приветствуются и другие решения.

Ответы [ 2 ]

5 голосов
/ 26 июля 2011

В Windows вы можете открыть файл с монопольным доступом с помощью функции API CreateFile и указать 0 в качестве режима общего доступа. Более подробную информацию можно получить по этой ссылке MSDN и по этой ссылке MSDN .

1 голос
/ 26 июля 2011

Использовать вызов WinAPI LockFile , Вот пример его использования.Однако это только защитит вас от прикосновения вашего файла к другим процессам, но все же позволит другим потокам в том же процессе использовать файл.Решение c #, однако ссылка MSDN может, по крайней мере, помочь вам предотвратить прикосновение вашего файла к другим процессам.

...