어떻게 va_args가 작동하는지 배우려고합니다.이 함수의 내부에서 형식 문자열과 args 목록을 병합하고 싶습니다. 지금 그것을하고있는 im가 단지 jiberish를 가져 오는 길. 거대한 프로세싱 기능을 쓰지 않아도되는 방법이 있을까요?sprintf를 사용하는 C 프로그래밍 처리 va_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);
에 오신 것을 환영합니다 데이터를 포맷, 무엇을해야 할 수 있습니다. 곧 [About] 페이지를 읽으십시오. 또한 SSCCE ([단편, 자체 포함, 올바른 예] (http://sscce.org/))를 제공하면 끝나지 않습니다. 우리는 여러분의 코드 앞에 void 함수 (const char * msg, ...) {va_list listPointer; '가 있다고 추측 할 필요는 없습니다. 적어도 완전한 기능을 제공하십시오. 'vsnprintf()'또는'v * printf()'패밀리의 다른 멤버 중 하나를 사용해야합니다. –
['calloc'] (http://linux.die.net/man/3/calloc) 호출은 자신이하는 일을 생각하지 않습니다. –