文件映射mmap

學習文獻《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:取消映射的長度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章