当前位置: 技术问答>linux和unix
unix关于消息队列和函数msgctl的问题。。急啊!!!
来源: 互联网 发布时间:2015-08-27
本文导语: 才接触unix,很多不熟悉的地方,向各位兄弟请教: 关于消息队列的,我的设想是假设消息队列中有一系列客户端发送来的消息,能不能用一个程序可以将消息队列中的消息显示出来(不是将消息队列里面的消息都收...
才接触unix,很多不熟悉的地方,向各位兄弟请教:
关于消息队列的,我的设想是假设消息队列中有一系列客户端发送来的消息,能不能用一个程序可以将消息队列中的消息显示出来(不是将消息队列里面的消息都收走,消息仍然存在于消息队列中),用如下的格式显示出来:
1:××××××××××
2: ××××××××××
。。。。。。。。。。。。
。。。。。。。。。。。。
n: ××××××××××
接下来,如何实现删除指定行的消息队列,例如从消息队列中删除第2条消息队列。
下面是我使用msgctl函数遇到的问题。
我定义了msgid_ds类型的结构变量 struct msgid_ds *buf;
如果我在函数msgctl中cmd参数 = “IPC_RMID”,msgctl(msgid,IPC_RMID,0)可以将指定的消息队列删除。
但是cmd参数=“IPC_STAT”,msgctl(msgid,IPC_STAT,buf)编译成功,运行失败,报错“Bad Address”
请问是什么地方出了问题啊!?谢谢 !!!
关于消息队列的,我的设想是假设消息队列中有一系列客户端发送来的消息,能不能用一个程序可以将消息队列中的消息显示出来(不是将消息队列里面的消息都收走,消息仍然存在于消息队列中),用如下的格式显示出来:
1:××××××××××
2: ××××××××××
。。。。。。。。。。。。
。。。。。。。。。。。。
n: ××××××××××
接下来,如何实现删除指定行的消息队列,例如从消息队列中删除第2条消息队列。
下面是我使用msgctl函数遇到的问题。
我定义了msgid_ds类型的结构变量 struct msgid_ds *buf;
如果我在函数msgctl中cmd参数 = “IPC_RMID”,msgctl(msgid,IPC_RMID,0)可以将指定的消息队列删除。
但是cmd参数=“IPC_STAT”,msgctl(msgid,IPC_STAT,buf)编译成功,运行失败,报错“Bad Address”
请问是什么地方出了问题啊!?谢谢 !!!
|
将你的msgctl(msgid,IPC_STAT,buf)修改为
struct msgid_ds buf msgctl(msgid,IPC_STAT,&buf);看看
欢迎访问我的个人网站 www.linuxc.net
struct msgid_ds buf msgctl(msgid,IPC_STAT,&buf);看看
欢迎访问我的个人网站 www.linuxc.net