【发布时间】:2018-12-13 05:35:53
【问题描述】:
我已阅读 cpp 参考资料,但我找不到我的问题的答案。我想知道如果我有空文件并尝试在不存在的位置写一些东西,那么保证会发生什么,就像这样:
std::ofstream stream(path);
stream.seekp(1234);
stream.write(whatever, sizeof(whatever));
由于异常处理,我在问我的问题。
【问题讨论】:
-
这更多是依赖于操作系统的东西。
-
当你新建一个空文件时,一切都是“不存在的位置”。只从头开始写并不是那。某些操作系统只会将您编写的部分保留为sparse file。其他人可能会用一些填充来填充磁盘上的漏洞,比如零。
-
在最好的时候告诉和寻找是很有趣的。无法保证他们使用的数字很有意义。可以保证的是,如果您在同一流中使用相同的数字,您将在流中获得相同的位置,如果该位置仍然存在。
标签: c++ file exception error-handling ofstream