C 程序以查找当前在GVIM中打开的文件
c++ program to find a file currently open in gvim?
我想重命名文件夹,例如" MV -F old_proj_name new_proj_name"。
但是,由于文件在GVIM编辑器中打开,因此不允许在文件夹上执行重命名操作。
文件未移动到新文件夹名称。
手动使用Unlocker软件检查文件是否已被其他过程锁定。
fopen()未显示文件是锁定的,当文件由GVIM编辑打开时。
我也尝试了opendir()API,但没有帮助。
现在,我希望在我的代码中实现锁检查功能,以便在重命名操作之前,我应该能够知道我是否可以成功执行。
请指导我。
问候,Amol
在进行重命名操作之前,我应该能够知道我是否可以成功地做。
这是一个谬论。您只能知道您是否可以在检查时成功执行操作。要知道您现在是否可以做到,您需要检查现在。但是,当您真正开始执行它时,"现在"会转向"当时"。要有可靠的指示,您需要再次检查。
您不认为它会变得很快吗?
因此,有两种处理方法。
首先,您可以希望(但永远不要知道),在检查和实际操作之间没有任何重要的事情。
第二,您可以完全跳过支票,然后尝试操作。如果失败,那么您将无法做到。在那里,您已经用一块石头杀死了两只鸟:您已经检查了是否可能进行操作,并在确实可能的情况下进行了操作。
update
如果您的数据的组织方式使您必须执行几个可能失败的操作,并且数据一致性取决于所有这些操作,或者立即失败,则存在一个固有的问题。您可以检查一些已知的故障条件,但是(a)您永远无法检查所有可能的故障条件,并且(b)任何检查都在执行的那一刻有效。因此,任何此类检查都不会完全可靠。您可能能够防止某些失败,但不能防止其他失败。一个足够的解决方案是数据存储,其中内置了适当的回滚工具,即数据库。
希望它有帮助。
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- Cppcheck生成xml转储文件
- 读取文件的最后一行并输入到链接列表时出错
- 如何在 ubuntu 的 C/C++ 包含目录中生成带有旺盛的 ctags 的标签文件以用于 gvim?
- C 程序以查找当前在GVIM中打开的文件
- MinGW + GVim 编译 C/C++ 失败(没有这样的文件或目录)