码迷,mamicode.com
首页 > 系统相关 > 详细

linux程序设计——IPC状态命令(第十四章)

时间:2015-07-20 09:19:16      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

14.5    IPC状态命令

虽然X/Open规范并没有定义它们,但大多数linux系统都提供了一组命令,用于从命令行上访问IPC信息以及清理游离的IPC机制.它们是ipcs和ipcrm命令,这两个命令对于开发程序非常有用.
IPC机制一个让人烦恼的问题是:编写错误的程序或者因为某些原因而执行失败的程序把它的IPC资源(如消息队列中的数据)遗留在系统中,并且这些资源在程序结束后很长时间仍然在系统中游荡.这将导致对程序的新调用执行失败,因为程序期望以一个干净的系统来启动,但事实上却发现一些遗留的资源.状态命令(ipcs)和删除命令(ipcrm)提供了一种检查和清理IPC机制的方法.

14.5.1    显示信号量状态

要检查系统中信号量的状态,可以使用命令ipcs -s.如果系统中有信号量存在,就会给出如下格式的输出:
$ ipcs -s

技术分享

可以用命令ipcrm来删除那些因意外情况而被程序遗留在系统中的信号量.要删除上面的信号量,使用的命令(在linux系统中)如下所示:

$ ipcrm -s 768

14.5.2    显示共享内存状态

类似于信号量,许多系统提供了命令行程序来访问共享内存的细节情况.它们是命令ipcs -m和ipcrm -m<id>
下面是一些ipcs -m命令的样本输出:
$ ipcs -m
技术分享
ipcrm -m <id>命令的作用是删除共享内存.如果程序因运行失败而未清理共享内存,这个命令就很有用了.

14.5.3    显示消息队列状态

用于消息队列的命令是ipcs -q和ipcrm -q <id>
下面是命令ipcs -q的一些输出:
技术分享

14.6    小结

在本章中,介绍了3种进程间通信的机制,它们最早出现在UNIX System V.2版本中,并从linux的早起版本开始就已用.这些机制是信号量,共享内存和消息队列.介绍了它们所提供的复杂功能以及这些功能是如何提供的.一旦理解了这些功能,它们就可以为许多进程间通信的需求提供有力的解决方案.

版权声明:本文为博主原创文章,未经博主允许不得转载。

linux程序设计——IPC状态命令(第十四章)

标签:

原文地址:http://blog.csdn.net/yiranant/article/details/46959787

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!