가변길이 매개변수 공부하는데 에러가..
글쓴이: 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 이네요.
댓글 달기