df 报告磁盘使用情况,但共享内存 /dev/shm 中没有文件

问题描述 投票:0回答:1

我正在尝试使用共享内存/C++ 进行编程。 我有多个进程访问共享内存片段,然后在执行过程中取消链接,并在完成前一个片段后链接到另一个片段。

一切正常,除了当我列出 ls /dev/shm 时它是空的,但是当我 df /dev/shm 时它说空间已消耗,为什么呢?

c++ linux posix shared-memory
1个回答
3
投票

如果您使用

shm_unlink()
,请记住
shm_unlink()

"删除字符串命名的共享内存对象的名称 按名字指出。”

但是

“内存对象内容的删除应推迟到 所有对共享内存对象的打开和映射引用都已被 已删除。”

(如手册页中所述)

因此,您可能看不到任何

ls
的内容,但您仍然看到使用
df
占用的内存。

© www.soinside.com 2019 - 2024. All rights reserved.