매번 찾아보는 게 귀찮아서 정리.
함수
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
작성자가 댓글을 삭제했습니다.
답글삭제