1讀取文件
// 打開文件
int fd = open("input.txt", O_RDONLY);
// 讀取文件長度
int len = lseek(fd,0,SEEK_END);
// 建立內(nèi)存映射
char *addr = (char *) mmap(NULL, len, PROT_READ, MAP_PRIVATE,fd, 0);
close(fd);
// data用于保存讀取的數(shù)據(jù)
char* data;
// 復制過來
memcpy(data, addr, len);
// 解除映射
munmap(addr, len)
2.寫入文件
int len = data.length();
// 打開文件
int fd=open("output.txt", O_RDWR|O_CREAT, 00777);
// lseek將文件指針往后移動file_size-1位
lseek(fd,len-1,SEEK_END);
// 從指針處寫入一個空字符佑附;mmap不能擴展文件長度,這里相當于預先給文件長度,準備一個空架子
write(fd, "", 1);
// 使用mmap函數(shù)建立內(nèi)存映射
char* addr = (char*)mmap(NULL, len, PROT_READ|PROT_WRITE,MAP_SHARED, fd, 0);
// 內(nèi)存映射建立好了审胚,此時可以關閉文件了
close(fd);
// 把data復制到addr里
memcpy(addr, data, len);
// 解除映射
munmap(addr, len)