가변길이 매개변수 공부하는데 에러가..

zxcvbnm의 이미지

아래 코드가 왜 안될까요?
컴파일하고 또 해도 같은 메시지가...

에러메시는 다음과 같습니다.

정의되지 않음 첫번째 참조된
기호 파일의
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;
}
moonzoo의 이미지

정의는 ELog인데 호출할때는 Elog 이네요.