调用mmap之后,是否需要打开文件?

我有一个程序,映射不less(100)的大文件每个10-100MB。 我需要他们全部映射在同一时间。

目前我open电话,然后在节目开始时按mmap ,然后是munmap ,最后close

通常我必须在运行程序之前调整运行ulimit -n的打开文件限制。

问题是我真的需要保持文件打开,或者我可以open mmap close做一些大数据处理,然后munmap当我完成。

这个mmap的man页面对我来说似乎不太清楚。

不,至less不是在Linux上closures文件是好的。

手册页面明确指出:

另一方面,closures文件描述符不会取消映射该区域。

为了便于携带,我也检查了POSIX手册 ,它说的是相同的东西(尽pipe更清楚):

mmap()函数为与文件描述符fildes关联的文件添加一个额外的引用,该文件不会被该文件描述符上的后续close()移除。 当没有更多映射到文件时,此引用将被删除。