13-mmap()的优点
4.3.4 mmap()的优点
相对于系统调用read()和write()而言,使用mmap()处理文件有很多优点。其中包括:
- 使用read()或write()系统调用时,需要从用户缓冲区进行数据读写,而使用映射文件进行操作,可以避免多余的数据拷贝操作。
- 除了可能潜在页错误,读写映射文件不会带来系统调用和上下文切换的开销,它就像直接操作内存一样简单。
- 当多个进程把同一个对象映射到内存中时,数据会在所有进程间共享。只读和写共享的映射在全体中都是共享的;私有可写的映射对尚未进行写时拷贝的页是共享的。
- 在映射对象中搜索只需要很简单的指针操作,不需要使用系统调用lseek()。
基于以上理由,mmap()是很多应用的明智选择。