如何将整数错误代码转换为人类可读的字符串?

Mik*_* T. 2 c++ ibm-mq

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

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

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

或者这个功能是否存在——只是不容易找到?

Mor*_*son 6

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

如果您不仅需要常量的字符串表示形式,还可以考虑调用mqrcIBM 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));
  :
}
Run Code Online (Sandbox Code Playgroud)