如何在 Linux 下使用 c++ 知道文件是否被其他进程使用?

How can I know whether a file is being used by other process by using c++ under Linux?

本文关键字:文件 是否 进程 其他 c++ Linux      更新时间:2023-10-16

我想将一个文件复制到另一个文件。但它总是失败。我仔细检查了我的代码,但我仍然不知道它出了什么问题。所以我想可能是其他进程正在使用的两个文件之一。所以首先,我想检查它们是否被其他进程使用。

如果是这样,是否有任何解决方案可以使用c ++停止该过程?

如果您的代码总是失败,我会假设这是因为代码存在问题,因为这是大约 99.999%1情况下的问题所在。

也就是说,在尝试之前检查是否可以打开文件没有多大意义,因为其他一些进程可能会在您检查和打开文件之间打开(或锁定或删除......(文件。

可靠的方法是继续尝试打开文件,然后优雅地处理失败(无论如何您都需要这样做(。


脚注:

1我刚刚编造的科学事实。