这是我创建消息队列的代码,//创建消息队列
$message_queue = msg_get_queue(691, 0777);  
$message_queue_status = msg_stat_queue($message_queue);  
 //向消息队列中写  
msg_send($message_queue, 1, 691);  
$message_queue_status = msg_stat_queue($message_queue);   //从消息队列中读  
msg_receive($message_queue, 0, $message_type, 1024, $message, true, MSG_IPC_NOWAIT);  echo $message;  //此时可正常输出  现问:我在运行这个消息队列的代码之前,想判断下,691的消息队列是否存在,应该如何实现,thanks

解决方案 »

  1.   


    /*
    msg_get_queue ( int $key [, int $perms ] )
        msg_get_queue()会根据传入的键值返回一个消息队列的引用。如果linux系统中没有消息队列与键值对应,msg_get_queue()将会创建一个新的消息队列。函数的第二个参数需要传入一个int值,作为新创建的消息队列的权限值,默认为0666。这个权限值与linux命令chmod中使用的数值是同一个意思,因为在linux系统中一切皆是文件。
    */
      

  2.   

    msg_get_queue() returns an id that can be used to access the System V message queue with the given key. 
    用这个函数可以判断吧?
      

  3.   

    共享内存用 信号量
    $sem_id = sem_get(0791); //建信号量id
    $shmid = get_memory_shmid(0791);
    sem_acquire($sem_id);  //信号量流程开始
    ....
    sem_release($sem_id); //信息号释放