df 报告磁盘使用情况,但在共享内存 /dev/shm 中没有文件
Posted
技术标签:
【中文标题】df 报告磁盘使用情况,但在共享内存 /dev/shm 中没有文件【英文标题】:df reports disk usage but no files in shared memory /dev/shm 【发布时间】:2015-10-26 11:05:55 【问题描述】:我正在尝试使用共享内存/c++ 进行编程。我有多个进程访问一个共享内存片段,然后在执行期间取消链接,并在完成前一个片段后链接到另一个片段。
所有的作品,除了,当我列出 ls /dev/shm 它是空的,但是当我 df /dev/shm 它说空间消耗,这是为什么?
【问题讨论】:
您应该检查 df 命令的真正作用。 man df - linux.die.net/man/1/df 和 man ls - linux.die.net/man/1/ls 我试了ls和ll,真的好像什么都没有。 如果其中一个答案对您有所帮助。请考虑接受,另见:meta.stackexchange.com/questions/5234/… 【参考方案1】:如果您使用的是shm_unlik()
,请记住shm_unlik
:
"移除以字符串命名的共享内存对象的名称 按名称指向。”
但是
"内存对象内容的删除应推迟到 所有对共享内存对象的打开和映射引用都已 删除。”
(如人page中所述)
因此,使用ls
可能看不到任何内容,但您仍然看到使用df
占用的内存。
【讨论】:
老问题,同样的问题。多久可以完全重启才能找到并删除正在使用共享内存的进程?以上是关于df 报告磁盘使用情况,但在共享内存 /dev/shm 中没有文件的主要内容,如果未能解决你的问题,请参考以下文章