mmap函数创建匿名映射区

mmap函数创建匿名映射区

mmap一般创建思路

1,打开一个文件,得到该文件的文件描述符

int fd = open(char *path,int mode)

2, 创建该文件的内存映射区

void *mptr = mmap(void *addr,size_t len,int prot,int mode,ssize_t fd,size_t offset);
	addr -------  NULL
	len  -------  4k的整数倍
	prot -------  PROT_READ   PROT_WRITE
	mode -------  MAP_SHARED  MAP_PRIVATE
	fd   -------  文件描述符
	offset------  偏移量(距离映射区首地址的字节数)

3,修改内存映射区的内容,用首地址进行操作
4,关闭资源

close(fd)        //关闭文件描述符
munmap(void *mptr,size_t len)  		//关闭内存映射区

mmap匿名映射区

1.直接创建映射区

void *mptr = mmap(NULL,len,PROT_READ | PROT_WRITE,MAP_SHARED | MAP_ANON,-1,offset);
//注意
mode参数必须要有一个参数是 MAP_ANON
文件描述符可以填-1
len 长度需要指定出来,4k的整数倍

2.进行操作
3.关闭资源

munmap(void *ptr,int len);

猜你喜欢

转载自blog.csdn.net/tang_mou_mou/article/details/89789964