我正在尝试了解 va_args 的工作原理,我想将 args 列表与我正在制作的这个函数内部的格式字符串合并。我现在这样做的方式只会导致乱码。有没有一种方法可以让我避免编写一些庞大的处理函数?
va_start( listPointer, msg );
#ifdef DEBUG
fprintf(stderr, msg, listPointer);
#endif
str = (char *)calloc(sizeof(MAX_LINE_SIZE), sizeof(char));
if(str == NULL){
fprintf(stderr, "out of memory exception");
return;
}
snprintf(str, MAX_LINE_SIZE, listPointer);
printf("testing: %s\n", str);
ret = write(logger, str, strlen(str));
if(ret == -1){
fprintf(stderr,
"Could not write to file with error: %s\n",
strerror(errno));
fprintf(stderr, "Cannot continue with error logging");
}
va_end( listPointer );