在打开文件之前是否有标准的C / C ++函数来检查另一个进程是否使用了该文件?
答案 0 :(得分:0)
如果您尝试使用
打开文件fopen();
并返回错误,然后可以执行以下操作:
OR
答案 1 :(得分:0)
如果我们稍微转过头来说明你如何只给一个进程访问一个文件,或者可能有许多进程共享对文件的写访问权而没有问题。然后我会建议看看这些:
答案 2 :(得分:-1)
确保文件仅由一个进程独占打开的一种方法是尝试创建一个锁文件,通常扩展名为.LCK。
E.g。如果文件名是foo,则尝试创建foo.LCK。如果成功,请在foo.LCK文件中写入进程的pid,以便稍后如果进程由于某种原因在不再需要锁定时不删除它,则可以删除LCK文件。
创建.LCK文件后,所有其他创建它的尝试都将失败。
另一种方法是使用flock()。
在这两种情况下,锁定都是建议性的而非强制性的。即一个不合作的过程可以自由地做它想做的事。