반응형


리눅스에 자주 사용하는 tail 명령어와 같은 역활을 하는 C 코드.
옵션으로 사용하는 몇 라인 긁어오라는건 for문 하나만 추가하면 구현이 가능하다.

FILE 객체에 _ptr 필드 가지고 난리를 치다가 결국 안되서 fseek을 사용해서 구현했더니 잘 된다.
현재는 One_Line 배열에 한줄만 가져가는 코드인 상태.


 #define LINE_CHECK_BYTE_NUM 512

char *InquireLog()
{
     FILE *fp = NULL;
     char c;
     long leng=1l;
     char One_Line[512];

     if((fp = fopen("test.txt","rb")) == NULL)
           fprintf(stderr,"LOG_PATH Open Error\n");

     while(leng++ < LINE_CHECK_BYTE_NUM){
           fseek(fp,-(leng),SEEK_END);
           c = fgetc(fp);
           if(c == '\n'){
                fgets(One_Line,leng,fp);
                //printf("One_Line : %s\n",One_Line);
                break;
           }
     }
    return One_Line;
}

반응형

+ Recent posts