2013-05-28 25 views
0

我需要直接訪問的存儲的數據訪問存儲的塊。我想從存儲中讀取/寫入一塊數據,提供數據的偏移量和長度。 請建議一種方式或提供一些c代碼來訪問存儲塊(不是文件)用c程序

如果有人指導我使用自定義文件系統完成這項工作,我也會很高興。

+0

如果你不想使用文件,你想使用什麼? –

+0

其實如果我使用文件,那麼每個文件塊應該映射到獨立存儲位置的存儲。我想使用固態硬盤,並使用不同的SSD通道訪問SSD塊。 –

回答

0

您可以將文件的一部分映射到與mmap(2)系統內存調用。這取自Linux man page

#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指定映射的長度。