【问题标题】:Does mmap need shm_open?mmap 需要 shm_open 吗?
【发布时间】:2012-12-04 12:37:44
【问题描述】:

我有一种情况,我需要执行文件 IO,但我被沙盒化了。因此,我将 shm_open 与 mmap 一起使用,以返回一个文件描述符,我可以在内存中愉快地读取/写入/写入。

我遇到的问题是我要移植到的平台没有 shm_open。 mmap 是否需要 arg 5 作为“文件描述符”?或者有没有其他方法可以在没有 shm_open 的情况下使用 mmap?

谢谢!

【问题讨论】:

  • 您写入的数据是否必须是持久的,即它应该写入磁盘?映射内存是否必须在进程之间共享?
  • 不,不需要持久数据。数据从闪存传递到 C 进程,然后进行编码。完成此操作后,数据将传回闪存。无需写入磁盘。
  • 是的,我确实需要读/写。沙盒化,因为我无法对磁盘进行任何读/写操作。

标签: c linux


【解决方案1】:

您可以使用MAP_ANONYMOUS 标志来映射一块内存。这和调用malloc基本一样,你写的数据不会被保存,因为它都在内存中。

【讨论】:

    猜你喜欢
    • 2016-04-30
    • 2013-12-28
    • 2012-09-18
    • 2018-07-26
    • 2022-11-28
    • 2019-08-01
    • 1970-01-01
    • 2016-03-10
    • 2021-06-08
    相关资源
    最近更新 更多