gpt4 book ai didi

c - stat 或 stati64 在 Windows 中是否有错误?

转载 作者:行者123 更新时间:2023-11-30 16:00:14 24 4
gpt4 key购买 nike

我在我的项目中看到一个奇怪的问题,其中 perl 无法看到文件,尽管它存在于磁盘中。我们通过 Perl 运行一系列短后端作业(每个作业持续 10 秒)。后端作业写入输出文件并退出,稍后 perl 进程将尝试传输它。作业最初运行良好,突然无法检测到后端写入的文件。调试perl代码(来自http://www.cpan.org/src/的5.10.1),我发现stati64(win32.c中的win32_stat)失败并返回-1。重试时,调用似乎工作正常。我可以保证后端进程不存在竞争条件,因为我们仅在后端退出后才尝试在 perl 中访问该文件。

有谁知道在哪些条件下(当在短作业中递归使用时) stat (或 stati64 )可以说文件不存在,尽管文件存在于 Windows 中?它是否缓存先前执行的结果以进行优化?

最佳答案

如果您可以重现该问题,请使用 SysInternals Process Monitor (或者已弃用但更易于使用的 Filemon)来查看发生了什么。

一个可能的原因是某些其他应用程序(例如防病毒程序或索引引擎)已锁定该文件,但 Procmon 应该显示来自 stat 的错误代码。

关于c - stat 或 stati64 在 Windows 中是否有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7973562/

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