首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mmap():是否有可能防止使用MAP_SHARED标志将文件写回文件?

mmap():是否有可能防止使用MAP_SHARED标志将文件写回文件?
EN

Unix & Linux用户
提问于 2021-08-19 18:16:53
回答 1查看 665关注 0票数 1

据我所知,mmap()中的'MAP_SHARED‘标志与其他进程共享进程对内存映射所做的任何更改,并最终将更改写回文件。是否可以与其他进程共享内存中的更改,但不将更改写回文件?它需要一种新型的旗子吗?实现这种标志会有多复杂(例如:‘MAP_SHARED_NOT_WRITE_BACK’?

=======================================

添加:我想到的实用程序: Process mmap是共享库foo.so的代码段,并对代码进行更改(例如,加密代码)。我希望稍后创建和使用foo.so的其他进程B、C等共享修改后的代码。但是,我不希望将更改写回foo.so文件。我更喜欢适用于多个进程和许多共享库的可伸缩解决方案。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-08-19 20:09:44

您应该使用只存在于RAM中的文件。

与Linux一样,memfd_create(2)或打开tmpfs文件系统1返回的文件也是如此。

在这种情况下,内存将由交换来支持,而不是常规文件或设备--如果有任何交换配置的话。请注意,如果文件是大的,这将给您的系统带来压力,并严重降低其性能,为零利益。

注:如果您担心您的“秘密”被无意中写入永久存储,最好看看您的系统有哪些加密存储解决方案。

1 shm_open(3)是在Linux上通过在/dev/shm上挂载的tmpfs上打开一个文件来实现的。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/665385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档