보통 하드웨어나 프로그램을 테스트하다 보면 디버깅을 위해 [printf]문을 자주 사용합니다

 

하지만 종종 출력메세지를 저장하고 싶어 지는 경우가 생기더군요

(필자의 경우 테스트지그 프로그램에 활용)

 

이럴땐이런 함수 활용하시면 편할거에요~~^^*

 

//==============================================================
//로그 저장 함수(전역변수 type)
//==============================================================

//==============================================================
//저장할 로그파일 경로정의
//==============================================================
#define LOG_FILE "/app/log.txt"


//==============================================================
//전역변수 선언
//==============================================================
char log_buff[1024] = { 0x00, };


//==============================================================
//로그 저장함수
//==============================================================
int write_logfile( char *buff )
{
    int file_access;
   
    FILE *fd_log_file;
   
    file_access = access(LOG_FILE, R_OK | W_OK);
   
    if ( file_access == 0 )
    {
       fd_log_file = fopen(LOG_FILE, "a+");
    }
    else
    {  
        fd_log_file = fopen(LOG_FILE, "w+");
    }

    if ( fd_log_file == NULL )
    {
        printf("log file open error\n");
        return -1;      
    }

   
    fseek( fd_log_file, 0, SEEK_END);
   
    printf("%s", buff);
    fwrite(buff, 1, strlen(buff), fd_log_file);
    fclose(fd_log_file);
   
    return 1;
}

 

//==============================================================
//로그함수 호출 루틴
//==============================================================
memset(log_buff, 0x00, sizeof(log_buff));//버퍼초기화
sprintf(log_buff, "%s", "log text\n");   //저장메세지
write_logfile( log_buff );//저장함수 호출