我在2个平台下发现(可能是2个版本)posix的消息队列不一样,linux平台上的posix消息队列有消息发送,接收超时的接口函数,而在 vxworks平台上的没有: 请问这2个函数是不是后边版本加上去的啊?我还正高兴2个平台可以直接都调这2个函数进行超时发送,接收消息呢,结果vxworks平台上的posix没这2个函数,晕。 #ifdef __USE_XOPEN2K /* * Receive the oldest from highest priority messages in message queue * __mqdes, stop ...
最近在看《UNPV2》 里面分posix消息队列,system v消息队列,还有posix 和system v共享内存等等,听人说,不用看system v方面的内容,集中看posix方面的内容就行了,这里想问下各位,实际项目中用到system v方面的内容多不多,真的不用看system v方面的内容吗?谢谢
文件包含
我用的是2.6.9内核的centOS,请问这个版本的内核支持posix消息队列吗? 我按照unpv2第五章消息队列的例子【msgcreate1.c】,编译的时候加上-lrt可以编译通过,但为什么执行就没有反映呢?而且没有任何错误信息?难道mq_open是个空函数,系统没有实现?还是咋了。 这里的反映是指: # ./mqcreate1 /tmp/temp1234 # ls /tmp 结果最起码要有与temp1234相关的文件吧?但我的就什么都没有?(程序绝对与书上相同)
想请教各位关于posix消息队列的问题,就是我按照
相对于System V 的消息队列,posix有所改进,a).首先是,队列中的每个消息都有一个优先级,这个取代了System V 中的消息类型值, b).再次是加入了信号的支持,即当有消息到达时,客户端可以接收到一个以注册的信号使其知道有消息可读,而不像System V 中那样需要一直的阻塞直到有消息到达为止,c).还有一个比较大的变化就是,对实时信号的支持。 实时信号有如下几个特点: a. 实时信号是队列的,普通信号则不是,...
程序使用posix消息队列, 在SOLARIS上运行没有问题,可以成功执行mq_open函数创建消息队列; 但是,在AIX上执行却出现错误:“Function not implemented”,请问是什么原因? 难道是AIX不支持posix消息队列吗?(那怎么能编译通过呢?)
我有两个进程。p1/p2 p1这样创建消息队列: mqd_t t1 = mq_open("/tmp.888", O_WRONLY);//只写 t1 = 3 通过打印出结果。 mqd_t t2 = mq_open("/tmp.666",O_RDONLY);//只读 t2 = 4 p2这样创建消息队列:(就是换一下) mqd_t t1 = mq_open("/tmp.666", O_WRONLY);//只写 t1 = 3 mqd_t t2 = mq_open("/tmp.888",O_RDONLY);//只读 t2 = 4 为什么2个进程 open的消息队列 都是 3、和 4 。而不是 第一个是 3和4、第二个是 4 和 3?...
公司的ipc基本上都是封装的,所以平时没写过,也不怎么熟悉. 并且大致看了下,好像都是system v的... 突然想熟悉下 posix ipc, 直接就用消息队列来学习下了. 代码如下,边写边加信息,比较烂.. send.c 创建消息队列,向里面添加数据. recv.c 读数据. 问题主要是两个.. 1,[code]cc -Wall -g -I./ send.c -o send -lrt /tmp/ccbJPjDr.o: In function `main': /home/prog/test/c/ipc/send.c:23: warning: warning: mq_getattr is not im...
在我的目标系统上(内核2.6.30 glibc 2.5-cs4.1-176),使用mq_open时(posix消息队列打开函数) ,提示“Function not implemented”.
我查看了/proc,也没有/proc/sys/fs/mqueue目录。
我该怎么做才能让目标系统支持posix消息队列呢?
重新编译内核?
实验代码如下:[code]
#include