mq:Function not implemented 解决方案

mq:Function not implemented  解决方案

2016年1月26日星期二

 

Bug Log

mq_open /data_from_net failed ,because Function not implemented

thread_ReadSer create /data_from_netfailed:Function not implemented

thread_Ums Tid = 7

mq_open /cmd_to_net failed , becauseFunction not implemented

thread_WriteSer create /cmd_to_netfailed:Function not implemented

 

问题关键在于:QNX系统的image file system文件系统为只读,无法创建文件,故发生错误。

 

# use mq

mq - POSIX message queue daemon

Options:

 -m    Set the default mq_maxmsgfor a NULL mq_attr (64 msgs)

 -s    Set the default mq_msgsizefor a NULL mq_attr (256 bytes)

 -N    Set the pathname of thedirectory for message queues ("/dev/mq")

 -d    Do not daemonize (守护进程)

 

解决方案

1、  映射消息队列创建路径到 可读写的路径;

         mq-N /opt/mqueue &

 

2、  指定消息队列库为QNX的libmq库,而不采用libc库编译;

 mq:Function not implemented 解决方案_第1张图片


mqueue  VS mq

Style

Server

Library

Pathname

mqd_t implementation

Qnet

Traditional

mqueue

libc

/dev/mqueue/

int (file descriptor)

Yes

Alternative

mq

libmq

/dev/mq/

int (internal index)

No

 

 

 

修改后消息队列创建成功,如下:

# ls -ls /opt/mqueue

total 0

      0 nrw-rw-rw-  1 root      0                 0 Sep 30 14:49 cmd_to_net

      0 nrw-rw-rw-  1 root      0                 0 Sep 30 14:49 data_from_net

#

 

 

你可能感兴趣的:(QNX,mq,QNX)