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,否则必然会造成资源泄露
本文分享了使用Linux mmap API时遇到的问题与解决方法,重点讲述了offset参数的使用和资源管理的重要性。通过实际案例分析,强调了遵循API文档和正确释放资源以避免内存泄露的必要性。
705

被折叠的 条评论
为什么被折叠?



