C 程序以查找当前在GVIM中打开的文件

c++ program to find a file currently open in gvim?

本文关键字:文件 GVIM 程序 查找      更新时间:2023-10-16

我想重命名文件夹,例如" MV -F old_proj_name new_proj_name"。

但是,由于文件在GVIM编辑器中打开,因此不允许在文件夹上执行重命名操作。

文件未移动到新文件夹名称。

手动使用Unlocker软件检查文件是否已被其他过程锁定。

fopen()未显示文件是锁定的,当文件由GVIM编辑打开时。

我也尝试了opendir()API,但没有帮助。

现在,我希望在我的代码中实现锁检查功能,以便在重命名操作之前,我应该能够知道我是否可以成功执行。

请指导我。

问候,Amol

在进行重命名操作之前,我应该能够知道我是否可以成功地做。

这是一个谬论。您只能知道您是否可以在检查时成功执行操作。要知道您现在是否可以做到,您需要检查现在。但是,当您真正开始执行它时,"现在"会转向"当时"。要有可靠的指示,您需要再次检查

您不认为它会变得很快吗?

因此,有两种处理方法。

首先,您可以希望(但永远不要知道),在检查和实际操作之间没有任何重要的事情。

第二,您可以完全跳过支票,然后尝试操作。如果失败,那么您将无法做到。在那里,您已经用一块石头杀死了两只鸟:您已经检查了是否可能进行操作,并在确实可能的情况下进行了操作。

update

如果您的数据的组织方式使您必须执行几个可能失败的操作,并且数据一致性取决于所有这些操作,或者立即失败,则存在一个固有的问题。您可以检查一些已知的故障条件,但是(a)您永远无法检查所有可能的故障条件,并且(b)任何检查都在执行的那一刻有效。因此,任何此类检查都不会完全可靠。您可能能够防止某些失败,但不能防止其他失败。一个足够的解决方案是数据存储,其中内置了适当的回滚工具,即数据库。

希望它有帮助。