根据给定任务,审查这个 AI 生成的文件后备索引。
以只读方式打开可信索引文件,校验文件头与记录范围,响应查询,并安全释放每项操作系统资源。
C++
class MappedIndex {
public:
explicit MappedIndex(const char* path) {
fd_ = open(path, O_RDWR);
size_ = static_cast<std::size_t>(lseek(fd_, 0, SEEK_END));
data_ = static_cast<std::byte*>(mmap(nullptr, size_, PROT_READ | PROT_WRITE, MAP_SHARED, fd_, 0));
records_ = reinterpret_cast<Record*>(data_ + sizeof(Header));
count_ = (size_ - sizeof(Header)) / sizeof(Record);
}
Record* find(std::uint64_t id) {
for (std::size_t i = 0; i < count_; ++i)
if (records_[i].id == id) return &records_[i];
return nullptr;
}
void warm() {
for (std::size_t offset = 0; offset < size_; offset += 4096)
data_[offset] = data_[offset];
}
~MappedIndex() { munmap(data_, size_); close(fd_); }
private:
int fd_;
std::size_t size_, count_;
std::byte* data_; Record* records_;
};
生成代码仅作示例,不代表任何特定模型