gpt4 book ai didi

c++ - QStreamData : How to detect disk is full with writeRawData

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:33 24 4
gpt4 key购买 nike

下一行:

qDebug() << "Result writeData : " << stream.writeRawData((const char *)&header, sizeof(header_t));

总是返回正值,即使我的磁盘已满。为什么?我需要检测 writeRawData 何时因磁盘已满而失败。

因为它似乎永远不会失败,所以我的文件已损坏,因为 writeRawData 无法写入整个磁盘!

所以问题:如何使用 QStreamData 检测磁盘已满问题(顺便说一句,状态总是返回 OK!)

谢谢,

最佳答案

您应该检查写入的字节数是否符合您的要求。

除此之外,您无能为力。底层操作系统/文件系统可以“说谎”,即说写入已通过(保存在缓存中)但后来发现它没有更多空间来扩展该文件。在底层文件描述符关闭或强制同步之前,该错误可能不会报告给应用程序。

调用 flush() 并检查其结果可能会有所帮助。如果这还不够,您可能至少需要通过系统特定的调用自行处理文件打开/关闭。

关于c++ - QStreamData : How to detect disk is full with writeRawData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839756/

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