我有一个程序写入/读取一个文件,我想为我的应用程序的其他实例锁定该文件。我该怎么做(在 C++ Visual Studio 2003 中)? 我尝试使用 _locking() 但后来我自己在尝试读/写时也无法访问文件(在同一实例中)。 我知道有一个 LockFile() 选项,但不知道如何正确设置它。 请帮助我。
最佳答案
您可以简单地使用 Win32 API CreateFile然后指定无共享权限。这将确保没有其他进程可以访问该文件。
dwShareMode DWORD 指定您想要的共享类型,例如 GENERIC_READ。如果指定 0,则表示不应授予任何共享权限。
例子:
HANDLE hFile = CreateFile(_T("c:\\file.txt"), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
如果你只想锁定文件的特定部分,你可以使用LockFile或 LockFileEx .
例子:
//Lock the first 1024 bytes
BOOL bLocked = LockFile(hFile, 0, 0, 1024, 0);
关于c++ - 在 Windows 上使用 C++ 锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/853805/