Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        3年前关闭。
                                                                                            
                
        
我使用mq_open创建消息队列/temp.1234


但是目录ls -al中的命令ipcs -q/不显示有关消息队列的任何信息。
我使用mq_send发送消息。同样,在另一个程序中,mq_open(“ / temp.1234”,O_WRONLY)成功返回3(消息描述符),但是当调用mq_receive时,它将输出EBADF。操作系统是ubuntu。
它仅对solaris有效,而不对ubuntu有效吗?


添加:
它来自UNIX网络编程卷2。


  这是Solaris 2.6下的输出:
  solaris%mqcreatel /temp.l234
  solaris%1s -1 /tmp/.*l234
  -rw-rw-rw-1 rstevens otherl 132632 Oct 23 17:08 /tmp/.MQDtemp.1234
  -rw-rw-rw- 1 rstevens其他1
  10月23日17:08 /tmp/.MQLtemp.l234
  -rw-r--r--
  1个其他
  10月23日17:08 /tmp/.MQPtemp.l234

最佳答案

第一个参数不是文件名,它只是一个标识符。它在文件系统上将不存在。
尝试从只写队列接收是一个错误。

关于c - ls -al为什么不显示由mq_open创建的消息队列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38430677/

10-11 15:40