我有一个程序从文件写入/读取,我想锁定我的应用程序的其他实例的文件.我怎么能这样做(在c ++ visual studio 2003中)?我尝试使用_locking(),但是当我尝试读/写(在同一实例中)时,我自己也无法访问该文件.我知道LockFile()有一个选项,但不知道如何正确设置它.请帮我.
Bri*_*ndy 14
您只需使用Win32 API CreateFile,然后指定不共享权限.这将确保没有其他进程可以访问该文件.
dwShareMode DWORD指定您希望的共享类型,例如GENERIC_READ.如果指定0则表示不应授予共享权限.
例:
HANDLE hFile = CreateFile(_T("c:\\file.txt"), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
Run Code Online (Sandbox Code Playgroud)
如果您只想锁定文件的某个部分,可以使用LockFile或LockFileEx.
例:
//Lock the first 1024 bytes
BOOL bLocked = LockFile(hFile, 0, 0, 1024, 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17059 次 |
| 最近记录: |