반응형

fseek

(스트림 위치 지정자 이동)

C

 #include <stdio.h>

C++

 #include <cstdio>

 

fseek(FILE* fileStream, long int offset, int origin);

  • origin 인자로 전달된 위치로 부터 offset 만큼 더해진 위치로 위치 지정자(poistion indicator) 이동시킴

 

origin 인자로 들어가는 매크로 상수들이 존재한다, 해당 위치로 이동하고 싶으면

fseek(pFile, 0, SEE_SET); // 시작위치로 이동

처럼 호출하면 된다

 

 

SEEK_SET

파일의 시작

SEEK_CUR

현재 파일 포인터의 위치

SEEK_END

파일의

 

 

주의 : 텍스트 파일에 fseek 함수를 사용할때, offset 인자로 0 아닌 혹은 ftell 함수에 의해 반환된 값을 사용할 때에는 일부 플랫폼에서는 문제가 생겨서, 예상치 못했던 위치로 이동할 있음

 

 

 

 

ftell

(스트림 위치 지정자의 현재 위치를 알려줌)

 

C

 #include <stdio.h>

C++

 #include <cstdio>

 

 long int ftell(FILE* stream);

  • fseek함수와 같이 써서 파일의 크기를 알아내는데 사용한다
  • 이진(binary) 스트림의 경우, 리턴된 값은 파일의 시작 부분에서 현재위치 까지의 바이트 수를 말함
  • 텍스트(txt) 스트림의 경우, 보이지 않는 문자( Line Feed , Carriage Return, ...) 등등도 포함한 바이트 수가 나오게 된다
    • LF : Line Feed, 현재 위치에서 바로 아래로 이동 \n
    • CR : Carriage Return,  커서의 위치를 앞으로 이동 \r

 

fseek + ftell 파일 크기 알아내기

 

ex1)

반응형

'C' 카테고리의 다른 글

memset, memcpy, memmove  (0) 2020.03.13
expression(표현식)  (0) 2020.03.12
Local Variable, Global Variable, Static Variable  (0) 2020.02.28
FileStream Input Output  (0) 2020.02.22

+ Recent posts