如何检查boost消息队列是否存在 我使用Booost MexAgEdQueWe,我在一个C++程序中创建队列并将它应用到另一个程序中。

如何检查boost消息队列是否存在 我使用Booost MexAgEdQueWe,我在一个C++程序中创建队列并将它应用到另一个程序中。,c++,boost,message-queue,C++,Boost,Message Queue,我的问题是,有时第一个程序还没有运行,但第二个程序正在运行 所以当我启动第一个程序时,我想知道队列是否存在。 我不想使用message_queue::remove,因为我不想丢失一些数据 问题是,我如何知道消息队列bla_bla_队列是否存在 message_queue q(open_only,"q"); 根据报告: 打开以前创建的名为的进程共享消息队列。如果队列之前未创建或没有可用资源,则抛出错误 因此,如果消息队列不存在,您应该能够捕获异常 A向我显示,已抛出,错误代码为7,这表示A。根据

我的问题是,有时第一个程序还没有运行,但第二个程序正在运行

所以当我启动第一个程序时,我想知道队列是否存在。 我不想使用message_queue::remove,因为我不想丢失一些数据

问题是,我如何知道消息队列bla_bla_队列是否存在

message_queue q(open_only,"q");
根据报告:

打开以前创建的名为的进程共享消息队列。如果队列之前未创建或没有可用资源,则抛出错误

因此,如果消息队列不存在,您应该能够捕获异常

A向我显示,已抛出,错误代码为7,这表示A。

根据:

打开以前创建的名为的进程共享消息队列。如果队列之前未创建或没有可用资源,则抛出错误

因此,如果消息队列不存在,您应该能够捕获异常


A向我显示,已抛出,错误代码为7,这表示A。

创建它并用try-and-catch环绕。阅读文档以查找特定版本的boost for已经存在或类似的错误代码

检查该版本中的示例

具体来说,请查看链接代码:

namespace boost {
  namespace interprocess {

    enum error_code_t { no_error = = 0, system_error, other_error, 
                        security_error, read_only_error, io_error, path_error, 
                        not_found_error, busy_error, already_exists_error, 
                        not_empty_error, is_directory_error, 
                        out_of_space_error, out_of_memory_error, 
                        out_of_resource_error, lock_error, sem_error, 
                        mode_error, size_error, corrupted_error, 
                        not_such_file_or_directory, invalid_argument, 
                        timeout_when_locking_error, 
                        timeout_when_waiting_error };

    typedef int native_error_t;
  }
}
有一个

already_exists_error

创建它,并用try-and-catch环绕。阅读文档以查找特定版本的boost for已经存在或类似的错误代码

检查该版本中的示例

具体来说,请查看链接代码:

namespace boost {
  namespace interprocess {

    enum error_code_t { no_error = = 0, system_error, other_error, 
                        security_error, read_only_error, io_error, path_error, 
                        not_found_error, busy_error, already_exists_error, 
                        not_empty_error, is_directory_error, 
                        out_of_space_error, out_of_memory_error, 
                        out_of_resource_error, lock_error, sem_error, 
                        mode_error, size_error, corrupted_error, 
                        not_such_file_or_directory, invalid_argument, 
                        timeout_when_locking_error, 
                        timeout_when_waiting_error };

    typedef int native_error_t;
  }
}
有一个

already_exists_error

最好使用链接,也许是最新版本?!根据我的经验,到目前为止,这只会提高1.55。不敢假设它在最新版本中会保持不变存在一个已存在的错误。他想知道消息队列是否不存在:但我在cpp文件中声明它不起作用,并且我不能使用try-catch。最好用作链接,也许是最新版本?!根据我的经验,到目前为止,这只会提高1.55。不敢假设它在最新版本中会保持不变存在一个已存在的错误。他想知道消息队列是否不存在:但我在cpp文件中声明它不起作用,并且不能使用try-catch。对答案不满意吗?告诉我为什么;对投否决票的人不满意吗?告诉我为什么;给否决它的人