linux用来映射文件的api
void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset);
官方的描述不再多说,直说一些教训么么。
一个是offset,事实上man文档也是有滴, offset should be a multiple of the page size as returned by getpage-
size(2).
但是用的时候没有仔细阅读,结果就悲了个剧,我第一次从文件的0开始映射,第二次增加1000再映射,但是屡次返回失败。这个时候就找上了google(再一次感叹,伟大的google,但是让人都不愿意去思考),答案就很简单,一定是某一页的倍数,其实也好理解,修改为4096之后,就木有问题。
第二个,如果多次mmap,那么一定要配对munmap,否则必然会造成资源泄露