| [ CnUnix ] in KIDS 글 쓴 이(By): HellCat (아가남편) 날 짜 (Date): 1996년07월19일(금) 06시14분41초 KDT 제 목(Title): re: stdarg (was va_start) 우선 보여주신 예제에서 void error(va_alist) va_dcl { va_list args; char *fmt; va_start(args); fmt=va_args(args, char *); vfprintf( stderr, fmt, args); va_end(args); } 이렇게 주셨는데요. 이건 옛날 꺼 <varargs.h> 를 include 해서 쓰실때 경우인데. 이걸 <stdarg.h> 로 바꾸면 void error (char *fmt, ...) { va_list args; va_start (args, fmt); vfprintf (stderr, fmt, args); va_end (args); } 이게 끝이네요. 물론 위에 원래 함수에 조금 오버헤드지만 더하면 if (fmt == NULL || *fmt == '\0') return; 을 va_start 하기 전에 더해주면 좋겠지요. --- hellcat@korea.slip.umd.edu if (t_snddis(KIDS[i].fd, (struct t_call *)NULL) == -1) { t_error("날 죽여라!!"); longjmp ((jmp_buf) HELL, -1); } --- dkim@surecom.com |