가변길이 매개변수 공부하는데 에러가..
글쓴이: zxcvbnm / 작성시간: 월, 2004/02/16 - 5:15오후
아래 코드가 왜 안될까요?
컴파일하고 또 해도 같은 메시지가...
에러메시는 다음과 같습니다.
정의되지 않음 첫번째 참조된
기호 파일의
Elog logtet.o
ld: 치명적: 기호 참조 오류. logtet에 출력이 기록되지 않음
#include <stdio.h> #include <sys/varargs.h> #include <sys/timeb.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> void ELog(char * sFormat, ... ) { struct tm *tm; int fd; va_list va_Ap; char sFile[1024]; char *pPos; int ret; char *sval; memset(sFile, 0x00, sizeof(sFile)); sprintf(sFile, "%s%s", "./", "LOG"); fd = open( sFile, O_APPEND|O_CREAT|O_WRONLY) ; lockf( fd, F_LOCK, 0 ); va_start( va_Ap, sFormat ); for (pPos = sFormat; *pPos; pPos++) { if (*pPos != '%') { putchar(*pPos); continue; } switch(*++pPos) { case 's': for (sval = va_arg(va_Ap, char *); *sval; sval++) { putchar(*sval); /* test ---*/ write( fd, pPos, strlen(pPos) ); write( fd, "\n", strlen("\n") ); } break; default: putchar(*pPos); /* test --- */ break; } } va_end(va_Ap); close( fd ); } int main() { char *pram1; char *pram2; pram1="flkdjflkdjflkdjflkdjfldk"; pram2="fjkdjfkdjfkdjfkdjfkdjkfd"; Elog("a=%s, b=%s\n", pram1, pram2); return 0; }
Forums:
Elog
정의는 ELog인데 호출할때는 Elog 이네요.
댓글 달기