当前位置:嗨网首页>书籍在线阅读

05-删除共享内存对象

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

54.4 删除共享内存对象

SUSv3要求POSIX共享内存对象至少具备内核持久性,即它们会持续存在直到被显式删除或系统重启。当不再需要一个共享内存对象时就应该使用shm_unlink()删除它。

1391.png shm_unlink()函数会删除通过name指定的共享内存对象。删除一个共享内存对象不会影响对象的既有映射(它会保持有效直到相应的进程调用munmap()或终止),但会阻止后续的shm_open()调用打开这个对象。一旦所有进程都解除映射这个对象,对象就会被删除,其中的内容会丢失。

程序清单54-4中的程序使用shm_unlink()来删除通过程序的命令行参数指定的共享内存对象。

程序清单54-4:使用shm_unlink()来断开链接一个POSIX共享内存对象

1392.png