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

How to translate integer error-codes into human-readable strings?

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

类似于 libc 的 strerror(3) 或 OpenSSL 的 ERR_error_string(3)...

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

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

您可以转换数字,例如2035,使用头文件 cmqstrc.h.

中附带的 MQRC_STR 函数转换为诸如“MQRC_NOT_AUTHORIZED”的字符串

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

#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));
  :
}