使用mmap将檔案映射到程序的虛拟位址空間,對記憶體的操作,直接反應到檔案中。
相關概念:
代碼參考:
執行驗證
代碼擷取檔案的中繼資料
檔案的中繼資料
相關使用函數
代碼實作
執行
Linux od指令用于輸出檔案内容。
od指令會讀取所給予的檔案的内容,并将其内容以八進制字碼呈現出來。
void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);
頭檔案需要包含<sys/mman.h>
功能:映射檔案或裝置到記憶體空間
參數:
addr:映射後的虛拟位址空間的位址(一般為NULL)
length:映射的長度
prot:
PROT_NONE Pages may not be accessed.
PROT_EXEC Pages may be executed.
PROT_READ Pages may be read.
PROT_WRITE Pages may be written.
flags:
MAP_SHARED:
MAP_PRIVATE:
MAP_ANONYMOUS: 不支援檔案映射
fd:-1
offset:0
傳回值:
MAP_FAILED 錯誤 errno被設定
成功傳回映射區域的位址
int munmap(void *addr, size_t length);
功能:解除記憶體映射
addr:是mmap(2)的傳回值
length:同mmap(2)函數中的length
0 成功
-1 失敗 errno被設定

檔案的中繼資料就是檔案的屬性,使用
如何擷取一個檔案的中繼資料?
使用系統調用stat(2)擷取檔案的中繼資料。
如何将uid的數字轉換為使用者的名字?
getpwuid(3)
/etc/passwd檔案的内容
這個檔案裡存放的是系統的所有使用者的資訊。
如何通過gid擷取組名?
組資訊存放在/etc/group檔案中
将長整型的時間轉換為字元串格式的時間