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