我的Linux机器上没有/ dev / shm(我手动卸载并删除了它),但是当我在应用程序中尝试shm_open("foo", O_CREAT | O_RDWR, 0666);
之类的shm_open()时,它仍然成功并返回3作为fd 。那么在这种情况下,共享内存在哪里创建?仍然可以与其他进程共享吗?
在这种情况下,为什么shm_open
仅在以root用户身份运行时才成功,而以非root用户身份失败而失败?
答案 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的文件系统的访问点。