c - Windows XP下,用C语言 : Checking if a file is open

标签 c windows-xp rename file-exists

在我的应用程序中,在 Windows-XP 下用 C 编写: 如何检查文件是否已被另一个应用程序打开? 一种选择是重命名文件,并检查它是否已重命名。 另一种选择是打开文件进行追加。 但是这些选项非常耗时。 有没有其他更省时的解决方案?

最佳答案

Windows API 中不存在可检查功能是否在另一个应用程序中打开的功能。如果它确实存在,它将受到竞争条件的影响。

假设您首先检查文件是否已经打开,然后返回的答案是当前未打开。然后你继续打开它,但与此同时其他人已经打开了。然后您尝试打开失败。

因此,了解您是否可以打开文件的唯一方法是尝试这样做。如果文件的打开方式阻止您尝试打开它,则该尝试将失败。

关于c - Windows XP下,用C语言 : Checking if a file is open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15596944/

相关文章:

c - 在 C 中的字符串中添加双引号

c# - 虚拟网络摄像头输入为字节流

c - 打印字符数组时出现意外行为

command-line - 如果给定文件或目录被锁定(由任何进程使用),如何检查命令行?

xml - 如何使用xerces C++获取节点值

c++ - GetModuleFileName 的边缘情况不明确

batch-file - DOS批处理重命名和旋转文件夹名称

python - 删除不需要的字符并编辑 Pandas 中的列名

基于向量重命名列

c - gnu 链接描述文件 - stm32f4xx - 全局变量