作用:將磁盤文件的數據映射到進程虛擬地址空間中的動態庫加載區中,可以看成一塊虛擬內存,用戶通過修改內存就能修改磁盤文件
函數原型:void* mmap(
void* addr, // 映射區首地址,傳NULL
size_t length, // 映射區的大小一般文件大小多大就填多大,默認換算成4K的整數倍,100byte->4Kbyte,5000byte->8Kbyte
但是,不能填0
int prot, // 映射區的權限PROT_READ--映射區必須要有讀權限
PROT_WRITE
PROT_READ | PROT_WRITE
int flags, // 標誌位參數MAP_SHARED:修改了內存數據會同步到磁盤
MAP_PRIVATE:修改了內存數據不會同步到磁盤
int fd, // 文件描述符open要映射的文件的fd
off_t offset // 映射文件的偏移量映射的時候文件指針的偏移量,必須是4K的整數倍,一般填0
);
返回值:
調用成功:映射區的首地址
調用失敗:MAP_FAILED
函數原型:
int munmap(void* addr,size_t length);
addr:mmap的返回值,映射區的首地址
length:mmap的第二個參數,映射區的長度