C++ C++;数据块管理
(在这里很难找到一个好的问题标题!) 在过去的几个月里,我似乎一直在为同样的任务编写代码(在一些小的变化中)。所以我想知道C++标准库(或者Boost)中是否有什么可以帮助的。让我试着解释一下我想做什么 作为一个具体的例子,假设我有一个逻辑文件,它由磁盘上的几个物理文件组成。我想做的是写一个函数,比如C++ C++;数据块管理,c++,C++,(在这里很难找到一个好的问题标题!) 在过去的几个月里,我似乎一直在为同样的任务编写代码(在一些小的变化中)。所以我想知道C++标准库(或者Boost)中是否有什么可以帮助的。让我试着解释一下我想做什么 作为一个具体的例子,假设我有一个逻辑文件,它由磁盘上的几个物理文件组成。我想做的是写一个函数,比如 void ReadData(void * buffer, UInt64 offset, UInt64 size); 看起来很简单,对吧?然而,它实际上相当微妙: 首先,我需要找出哪个物理文件包
void ReadData(void * buffer, UInt64 offset, UInt64 size);
看起来很简单,对吧?然而,它实际上相当微妙:
- 首先,我需要找出哪个物理文件包含请求的逻辑偏移量
- 接下来,我需要检查请求的
是否跨越物理文件边界size
- 实际上,在最坏的情况下,
可能跨越多个文件,尽管这不太可能size
- 最后,我需要
fread()
- 检查
和偏移量
是否超过可用数据也是谨慎的大小
有人知道图书馆里有什么能帮我的吗?我最感兴趣的是处理所有坐标变换的东西,而不是实际的I/O操作本身。B+树和B+树索引文件?