UNIX 共享内存应用中的问题及解决方法( 七 )


而且,上面的运行结果,也证明了,对共享内存进行了删除操作之后,当已有的连接全部断开,该共享内存将被系统自动销毁(运行结果的最后一行,说明该共享内存已经不存在了) 。
本节的目的在于说明,在AIX、HP-UX、Solaris平台上调用shmctl的IPC_RMID删除操作,是存在潜在风险的,需要足够的谨慎 。
如果,可以确知,在删除之后不可能再有新的连接,则执行删除操作是安全的;
否则,在删除操作之后如仍有新的连接发生,则这些连接都将失败!
7. 结论
对共享内存的操作,往往是产品或者应用中数据传输的基础,对其可靠性和性能至关重要;而且作为底层的IPC机制,相关代码具有不易调试的特点,由其造成的问题往往关键却不容易解决 。
本文从应用实现的角度上,对在UNIX/Linux平台上使用共享内存可能会遇到的问题,进行了全面的介绍和分析,并给出了解决方法或建议,可供相关的应用开发人员参考 。

推荐阅读