Hal*_*ali 15
你无法使用标准的fstream,你必须使用平台特定的功能.
在Windows上,您可以使用CreateFile()或LockFileEx().在Linux上,有flock(),lockf()和fcntl()(正如之前的评论者所说).
如果您使用的是MSVC,则可以将第三个参数传递给fstream的构造函数.请参阅Visual Studio 6或更高版本的文档.当然它不适用于其他编译器和平台.
你为什么要锁定其他人呢?可能有更好的解决方案......
扩展Casebash的评论:
在Windows中打开一个文件,以便其他进程无法写入它使用
file.rdbuf()->open(path, std::ios_base::app, _SH_DENYWR);
Run Code Online (Sandbox Code Playgroud)
_SH_DENYRW将拒绝读写访问