当前位置: 技术问答>linux和unix
懂内存映射的高手进。。。
来源: 互联网 发布时间:2016-12-29
本文导语: 我需要从把文件a的数据通过一中算法计算后, 把计算后的数据写入到b文件中。 用内存映射怎么做啊? 是不是大概: src=/tech-qa-linux/mmap();/index.html dest=mmap(); function(dest,src); 假如我的算法函数是function(); 是不是按上面...
我需要从把文件a的数据通过一中算法计算后,
把计算后的数据写入到b文件中。
用内存映射怎么做啊?
是不是大概:
src=/tech-qa-linux/mmap();/index.html
dest=mmap();
function(dest,src);
假如我的算法函数是function();
是不是按上面的步骤来?
以前没用过。。请高手帮助下!
把计算后的数据写入到b文件中。
用内存映射怎么做啊?
是不是大概:
src=/tech-qa-linux/mmap();/index.html
dest=mmap();
function(dest,src);
假如我的算法函数是function();
是不是按上面的步骤来?
以前没用过。。请高手帮助下!
|
LZ的思路已经到位了。
说白了也就是一个src和一个dest。
然后读写文件之前,先把文件映射到一个内存地址。然后像写内存一样写就行了。
|
可以的.
|
If addr is NULL, then the kernel chooses the address at which to create the mapping; this is the most portable method of
creating a new mapping. If addr is not NULL, then the kernel takes it as a hint about where to place the mapping; on
Linux, the mapping will be created at a nearby page boundary. The address of the new mapping is returned as the result of
the call.
建议使用NULL
creating a new mapping. If addr is not NULL, then the kernel takes it as a hint about where to place the mapping; on
Linux, the mapping will be created at a nearby page boundary. The address of the new mapping is returned as the result of
the call.
建议使用NULL
|
void *mmap(void *addr, size_t length, int prot, int flags,
int fd, off_t offset);
你可以用这个offset 而不是第一个参数.