为什么即使没有/ dev / shm,shm_open()也会成功?

时间:2019-05-10 12:14:27

标签: linux ipc shared-memory

我的Linux机器上没有/ dev / shm(我手动卸载并删除了它),但是当我在应用程序中尝试shm_open("foo", O_CREAT | O_RDWR, 0666);之类的shm_open()时,它仍然成功并返回3作为fd 。那么在这种情况下,共享内存在哪里创建?仍然可以与其他进程共享吗?

在这种情况下,为什么shm_open仅在以root用户身份运行时才成功,而以非root用户身份失败而失败?

1 个答案:

答案 0 :(得分:0)

93 52 72 79 37 96 26 15 86 42 Min number is : -963189760 Avg number is : -96318925 Max number is : 96 创建一个不存在的共享内存对象。

您的shm_open应该是有效的文件描述符,您可以将其与fd一起使用,以便与其他进程共享此内存区域。


当您卸载并“卸下” mmap装载点时,实际上没有任何改变。它仅用作具有基于RAM的文件系统的访问点。