gpt4 book ai didi

c - 在调用 mmap 后我是否需要保持文件打开?

转载 作者:太空狗 更新时间:2023-10-29 16:18:16 28 4
gpt4 key购买 nike

我有一个程序可以映射相当多(100 个)的大文件,每个文件大小为 10-100MB。我需要同时映射它们。

目前我在程序开头调用open,然后调用mmap,然后调用munmapclose 最后。

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

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

mmap 的手册页对我来说在这方面似乎不是很清楚。

最佳答案

不,至少在 Linux 上不是这样,关闭文件就可以了。

The manual page明确指出:

On the other hand, closing the file descriptor does not unmap the region.

为了便携性,我还检查了 POSIX manual , 它说的是同一件事(尽管更清楚):

The mmap() function adds an extra reference to the file associated with the file descriptor fildes which is not removed by a subsequent close() on that file descriptor. This reference is removed when there are no more mappings to the file.

关于c - 在调用 mmap 后我是否需要保持文件打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17490033/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com