學習文獻《http://c.biancheng.net/cpp/html/138.html》
頭文件:#include <unistd.h> #include <sys/mman.h>
定義函數:void
*mmap(void *start, size_t length, int prot, int flags, int fd, off_t offsize);
函數說明:mmap()用來將某個文件內容映射到內存中,對該內存區域的存取即是直接對該文件內容的讀寫。
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <sys/mman.h> main(){ int fd; void *start; struct stat sb; fd = open("/etc/passwd", O_RDONLY); /*打開/etc/passwd */ fstat(fd, &sb); /* 取得文件大小 */ start = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0); if(start == MAP_FAILED) /* 判斷是否映射成功 */ return; printf("%s", start); munma(start, sb.st_size); /* 解除映射 */ closed(fd); }
文件取消映射
函數原型:int munmap(void *start, size_t length)
函數作用:解除文件映射
參數:start:取消映射的地址
length:取消映射的長度