首页 > 解决方案 > c 中 mmap 函数中可接受数据的最大大小是多少?

问题描述

假设有一个大文件。该 mmap 函数无法完全处理它。但是我们需要尽可能多地读取这个文件的大部分内容。

我发现 Unix 中的这个命令可以让我们找到 mmap 大小:

sysctl vm.max_map_count

输出是:vm.max_map_count = 65530

但是,它在 C 程序中不起作用。如何在C程序中找到map函数的大小?

标签: clinuxunixmemory-managementmmap

解决方案


映射的大小没有限制(除了 中的位size_t),因为内核不需要一次将整个内容加载到内存中。mmap()是读取大于内存的文件的首选方法:只需映射文件,让内核担心其余的...


推荐阅读