私は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 );