停止我的应用程序的两个实例同时写入同一文件夹

时间:2012-07-10 13:07:12

标签: c++ locking directory block

我有一个将文件写入文件夹的应用程序,如果我的应用程序的另一个实例尝试写入同一目录,我想阻止(或至少显示警告)。

有没有办法可以暂时阻止访问文件夹以防止这种情况发生?

编辑:

我有一个关于创建临时文件以用作标志的想法,但是如果我的应用程序崩溃,有没有办法确保删除临时文件?

1 个答案:

答案 0 :(得分:3)

为什么不使用lock file

您必须确保“检查并创建”操作是原子操作。如果它告诉您锁文件已经存在,则有另一个进程访问该目录。

阻止其他进程的整个目录不是您想要的。您还会阻止shell和文件浏览器访问它。


我看到了你的编辑:你可以将文件的进程ID写入lockfile。 如果您的应用程序检测到现有锁定文件,则可以检查是否存在具有该ID的进程。如果没有,请删除锁定文件并重新开始。