-
C/C++ fseek(3), fseeko(3)C,C++ & Linux 2020. 5. 22. 11:23728x90
함수 기능
파일 오프셋 포인터를 이동시키는 함수입니다.
파일을 읽거나 쓸 때 오프셋 포인터 위치에 작업이 일어납니다. 쉽게 생각해서 커서라고
fseeko() 함수는 offset 을 off_t 타입으로 표현합니다. 이는 long 보다 큰 타입으로, long 형으로 오프셋을 표현할 수 없는 매우 큰 파일에 대해 사용합니다.
함수 원형
#include <stdio.h> int fseek(FILE *fp, long offset, int whence); int fseeko(FILE *fp, off_t offset, int whence);
매개변수
fp
대상 파일 포인터
offset
이동시킬 파일 오프셋
양수, 0, 음수 모두 가능합니다.
whence
기준점
SEEK_SET : 파일의 맨 처음
SEEK_CUR : 현재 파일 오프셋
SEEK_END : 파일의 맨 끝
반환값
성공 시 0 리턴
에러 시 0이 아닌 정수 리턴
예제
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char *argv[]) { char *fname = "ssu_test.txt"; FILE *fp; long position; int character; if ((fp = fopen(fname, "r")) == NULL) { fprintf(stderr, "fopen error\n"); exit(1); } printf("Input number >> "); scanf("%ld", &position); if (fseek(fp, position - 1, SEEK_SET)) { fprintf(stderr, "fseek error\n"); exit(1); } character = getc(fp); printf("%ld번째 글자는 %c 입니다.\n", position, character); exit(0); }
결과
리눅스시스템프로그래밍 저자 : 홍지만
https://book.naver.com/bookdb/book_detail.nhn?bid=14623672
책에 기술된 예제 프로그램입니다. 책 내부에는 훨씬 더 많은 자료가 있습니다. (개인적으로 좋았습니다.)'C,C++ & Linux' 카테고리의 다른 글
C/C++ rewind(3) (0) 2020.05.22 C/C++ ftell(3), ftello(3) (0) 2020.05.22 C/C++ fread(3) fwrite(3) (1) 2020.05.22 C/C++ puts(3), fputs(3) (0) 2020.05.22 C/C++ gets(3), fgets(3) (0) 2020.05.22