当前位置: 技术问答>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
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。