gpt4 book ai didi

windows - 处理网络驱动器文件 I/O 可能出现的错误

转载 作者:可可西里 更新时间:2023-11-01 10:40:55 25 4
gpt4 key购买 nike

我正在尝试使通过网络驱动器(可能通过 WAN 或 VPN)的文件 I/O 对于 native C++ Windows 应用程序尽可能可靠...

我需要能够处理哪些可能的错误情况?

如何在测试中模拟这些错误情况?

如何获取特定错误的详细信息?例如,如果 fopen() 失败,errno 会告诉我所有我需要知道的信息,还是我需要获取 GetLastError() 值(value)?

如何可靠地区分“网络驱动器访问功能正常但文件不存在”和网络或服务器的各种问题?

我在桌面上注意到的一个特定错误情况(并非特定于我们正在开发的应用程序)是有时第一次尝试访问网络驱动器上的文件会失败,但它可能会导致驱动器在后台重新连接,因为后续连接有效。我不知道是什么原因造成的。这是我想要正确处理的错误情况的示例。

编辑:这是针对使用网络共享上的文件在节点之间进行通信的遗留分布式应用程序。有些节点可能无人值守,因此将错误传递给最终用户可能不是一种选择。长期目标是切换到更好的协议(protocol),但短期内我希望使文件 I/O 尽可能可靠。

最佳答案

我认为您是从错误的角度来处理这个问题的。应用程序本身几乎无法改善本质上是网络文件系统驱动程序的问题,也许除了实现网络 I/O 本身之外。话虽如此,您最好还是根据自己的需要选择合适的网络文件系统。看this在维基百科上。

通常,您的应用程序的行为应该像文件存储在本地一样。不要太努力去处理网络问题。但是,如果您选择的网络文件系统很好,那么这些问题就可以自动缓解。

所以我想说你应该解决检查 errno 以防出错的问题。如果写入远程文件失败(如果网络文件系统本身无法处理),可能会回退到本地存储。

关于windows - 处理网络驱动器文件 I/O 可能出现的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/489001/

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