mmap映射内存的大小是不是不能超过文件大小?
做了以下实验:
1.文本文件 HELLO.txt 的大小有6个字节;
2.使用mmap成功映射这个文件到内存;mmap( NULL,6, ... )
3.修改mmap返回的指针,程序退出后查看文件,文件内容已成功改变。
我把mmap的第二个参数设置的很大,但是最后文件 HELLO.txt 只有6个字节。
我想问一下,是不是mmap大小不能超过映射文件的大小?
假如我有一个程序是从数据库导出大量数据,经过处理后写入mmap映射的文件,
那我必须预先计算好将要写入的数据大小,否则就写不进去了。
1.文本文件 HELLO.txt 的大小有6个字节;
2.使用mmap成功映射这个文件到内存;mmap( NULL,6, ... )
3.修改mmap返回的指针,程序退出后查看文件,文件内容已成功改变。
我把mmap的第二个参数设置的很大,但是最后文件 HELLO.txt 只有6个字节。
我想问一下,是不是mmap大小不能超过映射文件的大小?
假如我有一个程序是从数据库导出大量数据,经过处理后写入mmap映射的文件,
那我必须预先计算好将要写入的数据大小,否则就写不进去了。
...全文
相关推荐
linux mmap文件内存映射机制
##### 3.2 文件映射的实现文件映射的核心在于创建一个虚拟内存区域(`vm_area_struct`),这个区域包含了映射的相关信息,如文件的位置、大小、权限等。
共享内存mmap
功能:创建共享内存映射函数返回值:成功返回创建的映射区首地址,失败返回 MAP_FAILED(((void *) -1)) ,设置errno值。
linux下的内存映射函数mmap详解及示例代码
* 使用mmap函数时,需要确保文件描述符fd是有效的,并且文件是可读或可写的。* 使用mmap函数时,需要确保映射的长度length是合法的,并且不超过文件的大小。
Python3 mmap内存映射文件示例解析
`mmap()`函数接受这个文件描述符,以及要映射的文件大小(以字节为单位)。若大小设为0,则映射整个文件。如果映射的大小大于文件实际大小,文件会被自动扩展。
matlab的mmap
**注意事项**: - **文件大小限制**:内存映射文件的大小受限于可用的虚拟内存,可能超过物理内存。


