我需要直接访问存储的数据。我想从存储中读取/写入一大块数据,提供数据的偏移量和长度。请提出一种方法或提供一些 c 代码来访问存储块(不是文件)
如果有人指导我使用自定义文件系统完成这项工作,我也会很高兴。
我需要直接访问存储的数据。我想从存储中读取/写入一大块数据,提供数据的偏移量和长度。请提出一种方法或提供一些 c 代码来访问存储块(不是文件)
如果有人指导我使用自定义文件系统完成这项工作,我也会很高兴。
mmap(2)
您可以使用系统调用将文件的一部分映射到内存中。这取自Linux 手册页。
#include <sys/mman.h>
void *mmap(void *addr, size_t length, int prot, int flags,
int fd, off_t offset);
int munmap(void *addr, size_t length);
mmap() 在调用进程的虚拟地址空间中创建一个新映射。新映射的起始地址在 中指定
addr
。参数指定映射的length
长度。