gpt4 book ai didi

c++ - libxml2 错误处理

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:53 26 4
gpt4 key购买 nike

我正在用 C++ 围绕 libxml2 编写一个小的包装器,我正在尝试弄清楚如何处理错误。现在,假设我只想打印出来。这是我目前得到的:

我的错误处理函数:

void foo(void *ctx, const char *msg, ...) {
cout << msg << endl;
return;
}

初始化如下:

xmlGenericErrorFunc handler = (xmlGenericErrorFunc)foo;
initGenericErrorDefaultFunc(&handler);

但是,如果我解析错误的 XPath,我会得到以下输出:

%s

没有错误处理代码,我得到这个:

XPath error : Invalid expression//.@foobar    ^

显然,最终我的错误处理将不仅仅是打印出错误消息(它将它记录到数据库或其他东西),但现在 - 我怎样才能得到那个错误字符串?

最佳答案

函数 foo() 参数列表末尾的三个点表示它接受可变数量的参数。为了能够打印那些你可以做这样的事情(未经测试):

#include <stdarg.h>

#define TMP_BUF_SIZE 256
void foo(void *ctx, const char *msg, ...) {
char string[TMP_BUF_SIZE];
va_list arg_ptr;

va_start(arg_ptr, msg);
vsnprintf(string, TMP_BUF_SIZE, msg, arg_ptr);
va_end(arg_ptr);
cout << string << endl;
return;
}

关于c++ - libxml2 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1679515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com