我尝试使用共享内存/ c ++进行编程。我有多个进程访问共享内存块,然后在执行期间取消链接,并在完成前一个部分后链接到另一个部分。
所有工作,除了,当我列出ls / dev / shm它是空的,但是当我df / dev / shm它说空间消耗了,为什么呢?
答案 0 :(得分:3)
如果您使用的是shm_unlik()
,请注意shm_unlik
:
"删除字符串命名的共享内存对象的名称 名字指出。"
<强>但强>
&#34;内存对象内容的删除应推迟到 对共享内存对象的所有打开和映射引用都是 。除去&#34;
(如男人page中所述)
因此,您可能看不到ls
的任何内容,但仍然看到使用df
占用的内存。