是否有任何方法,无论是否特定于 linux,shm_open()
在没有进程使用它们时删除 posix 共享内存段(使用 获得)。即对它们进行引用计数,并在引用变为 0 时让系统删除它们
几点注意事项:
如果程序崩溃,建立一个 atexit 处理程序来删除它们不起作用。
目前,linux特有的方式,我将pid嵌入到段名中,并尝试通过在外部程序中走/dev/shm来找到未使用的段。其缺点是必须定期以一种相当骇人的方式从外部清理它们。
由于程序可以运行多个副本,因此为程序在启动时重用的段使用定义明确的名称是不可行的。