gpt4 book ai didi

perl - 重命名期间是否有文件 "doesn' t 存在”?

转载 作者:行者123 更新时间:2023-12-04 02:12:19 27 4
gpt4 key购买 nike

我们有一个黑盒第三方 Java 程序,可以从某个位置获取输入文件并制作 PDF。每次输入时,它都会将 list 文件放在同一位置,这需要我们以受控方式提供文件。 list (或 .xen/.que)是否仍然存在?不要提供输入文件。

我们的提要脚本的实例非常罕见(数万个文件中的一个)找不到任何东西,提供文件,以及当 list 被覆盖且内容不匹配时产生的错误。我编写了一个 perl 脚本,它只将时间打印到 10 万分之一,将我们关心的目录中的任何内容都放在一起,然后打印出来。您可以在下面看到 .xen 和 .que 文件,其中 .xen 是输入,.que 是它的重命名版本以指示处理。

那么我的问题是: 94.26493 缺少文件怎么可能?操作系统是否在重命名文件时隐藏文件?当提要程序在那一刻寻找文件时,我们遇到了问题,所以我计划的黑客是两次检查文件;希望足够慢以捕捉重命名的任何一端。我还应该指出,一旦 2 个文件出现在一行上,这就是提要程序将另一个文件放入的地方。它与重命名之前的文件不同。

1421417394.26392/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen
1421417394.26416/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen
1421417394.26442/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen
1421417394.26468/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen
1421417394.26493
1421417394.26907/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265
1421417394.27426/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen /gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265
1421417394.27456/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen /gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265
1421417394.27486/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen /gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265
1421417394.27528/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen /gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265

最佳答案

实际guarantee in POSIX就是如果你重命名 abb已经存在,重命名时不会有时间点b不存在。它将引用以前存在的 b或新 b原名 a .

b不存在(在您的示例中似乎就是这种情况),则保证不适用。可能有一段时间 a也不是 b存在(这取决于特定文件系统的工作方式)。也有可能同时出现 ab存在(并引用同一个文件)。

您提出的在短时间内检查两次的解决方案可能是最简单的方法。

关于perl - 重命名期间是否有文件 "doesn' t 存在”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27986895/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com