[C&C++] fseek , ftell, lseek ,사용 정리








매번 찾아보는 게 귀찮아서 정리.

함수 
int fseek(FILE * stream, long offset, int whence)

헤더 
stdio.h

인자 정보
FILE *stream (파일 포인터)
long offset (이동할 크기)
int whence (어디서 부터 이동할지의 위치)

whence의 경우, 정의된 값 혹은 상수값 사용 가능
SEEK_SET = 파일 시작 부
SEEK_CUR = 현재 파일 포인터 위치
SEEK_END = 파일 끝


반환 값
0(성공) or -1(실패)





























함수 
long ftell(FILE * fp)

헤더 
stdio.h

인자 정보
FILE *fp (파일 포인터)


반환 값
현재 파일포인터의 위치(성공) , -1(에러)






fseek + ftell을 사용하면 파일 사이즈를 구할 수 있다.

fseek(fp, 0, SEEK_END);
int file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
/*
do File Work
*/









함수 
off_t lseek(int file_des, off_t offset, int whence) (Linux 기반)

헤더 
unistd.h

인자 정보
int file_des (파일 디스크립터)
off_t offset (이동할 크기)
int whence (어디서 부터 이동할지의 위치)

반환 값
현재 파일포인터의 위치(성공) , -1(에러)


fseek와 차이점은 FILE 포인터를 쓰냐 디스크립터를 쓰냐의 차이.


파일 Size를 구할 때,

int file_size = lseek (fd , 0 , SEEK_END);
/*
 do File Work
*/

로 사용




[출처]
http://forum.falinux.com/zbxe/index.php?document_srl=408250&mid=C_LIB

댓글

댓글 쓰기

이 블로그의 인기 게시물

윤석열 계엄령 선포! 방산주 대폭발? 관련주 투자 전략 완벽 분석

대통령 퇴진운동 관련주: 방송·통신·촛불수혜주 완벽 분석

키움 OPEN API MFC 개발 (1)