linux共享内存(share memory)与直接文件读取的区别
前提:
linux下的共享内存编程,内存映射用的函数是mmap(void *addr,size_t len,int prot,int flags,int fd,off_t offset)
问题:
可以看到内存映射中需要的一个参数是int fd(文件的标识符),可见函数是通过fd将文件内容映射到一个内存空间,我需要创建另一个映射来得到文件内容并统计或修改,这时我创建这另一个映射用的仍是mmap函数,它仍需要用到fd这个文件标识,那我不等于又重新打开文件读取文件里的数据
1.既然这样那同对文件的直接操作有什么区别呢?
2.映射到内存后通过映射的指针addr来修改内容的话是修改共享内存里的内容还是文件的内容呢?
3.解决上面2个问题,我还是想确切知道共享内存有什么用???
不了解的请不要回贴,宁愿没有一条精辟的回复,也不愿百来条路过的留言...谢谢您的合作~~~