首页 > 解决方案 > 如何将整数错误代码转换为人类可读的字符串?

问题描述

IBM 竭尽全力记录不同 MQ 相关函数的可能错误代码,但我找不到将整数代码转换为人类可读字符串的现有库函数。

像 libcstrerror(3)或 OpenSSL 的东西ERR_error_string(3)......

我想,程序员和操作员应该有一本方便的(如果是折耳的)参考书......

或者该功能是否存在 - 只是不容易找到?

标签: c++ibm-mq

解决方案


MQRC_STR您可以使用头文件中附带的函数将数字(例如 2035)转换为字符串,例如“MQRC_NOT_AUTHORIZED” cmqstrc.h

如果您想要的不仅仅是常量的字符串表示,您可以考虑调用mqrc随 IBM MQ 的分布式平台版本一起提供的可执行文件,并抓取输出。在我看来,常量的字符串版本对大多数人来说已经足够了。

#include <cmqc.h>                   /* Include for MQI Constants */
#include <cmqstrc.h>                /* Convert MQRC into string  */

:

MQCONN(QMName,
       &hConn,
       &CompCode,
       &Reason);
if (Reason)
{
  printf("MQCONN to QMgr %.48s failed with reason %d (%s)\n",
         QMName, Reason, MQRC_STR(Reason));
  :
}

推荐阅读