C++ 如何使用c++;?

C++ 如何使用c++;?,c++,file,file-locking,C++,File,File Locking,如何将windows中的文件锁定为只有当前线程(没有来自同一进程的其他线程,也没有其他进程)才能访问(读/写)该文件 如果可能的话,请告诉我一些类似fcntl的解决方案(锁定具有描述符的文件的解决方案)。但是在任何情况下,也欢迎使用其他解决方案。使用WinAPI调用。但是,这只会保护您免受其他进程接触您的文件,它仍然允许同一进程中的其他线程使用该文件 编辑: 我没有看到这是C++,抱歉,我只知道线程间的C解决方案,但是MSDN链接至少可以让你开始阻止其他进程触摸你的文件。在Windows中,你可

如何将windows中的文件锁定为只有当前线程(没有来自同一进程的其他线程,也没有其他进程)才能访问(读/写)该文件

如果可能的话,请告诉我一些类似fcntl的解决方案(锁定具有描述符的文件的解决方案)。但是在任何情况下,也欢迎使用其他解决方案。

使用WinAPI调用。但是,这只会保护您免受其他进程接触您的文件,它仍然允许同一进程中的其他线程使用该文件

编辑:
我没有看到这是C++,抱歉,我只知道线程间的C解决方案,但是MSDN链接至少可以让你开始阻止其他进程触摸你的文件。在Windows中,你可以用API函数<代码> CytFeFiels/Cuff>打开一个文件,并指定<代码> 0 <代码>作为共享模式。在Mihran和.

中,您可以从C++函数中调用该函数。这是Win32 C API。请注意,
LockFile
将文件锁定为由单个进程独占使用,而不是由单个线程独占使用。为了确保后者,您必须在进程内构建自己的锁定机制。如果后续线程都使用
CreateFile
API(不传递返回的文件
HANDLE
),则调用
CreateFile
应该失败,如果我正确理解文档的话。但是,我并没有专门尝试这样做(线程间)。