/*
*功能:使用mmap()函数将文件映射到内存,并读写文件内容,并解除映射
*/
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
int main(void)
{
int fd;
char *addr;
fd = open("a.txt", O_RDWR);
//返回值映射的内存地址指针
addr = mmap(NULL, 100, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);//映射文件到内存,第一个参数为NULL表示由系统决定映射的位置,第二个参数为映射的大小,第三个参数为映射的权限,第四个参数为映射类型,第五个参数为文件描述符,第六个参数为偏移量
printf("%s\n", addr);//输出映射的内存地址
scanf("%s", addr);//输入字符串到映射的内存地址
munmap(addr, 100);//解除映射,第一个参数为映射的内存地址,第二个参数为映射的大小
close(fd);//关闭文件
return 0;
}