#include<stdio.h>
#include<stdlib.h>
int main(void){
char *fname = "ssu_test.txt";
FILE *fp;
long position;
int character;
if ((fp=fopen(fname,"r"))==NULL){
fprintf(stderr, "fopen error for %s\n",fname);
exit(1);
}
printf("Input number>>");
scanf("%ld",&position);
fseek(fp,position-1,SEEK_SET);
character=getc(fp);
printf("%ldth character -> %c\n",position,character);
exit(0);
}
함수 기능
ftell
파일 스트림의 현재 오프셋 위치가 파일의 시작부터 몇 바이트만큼 떨어져 있는지 알려주는 함수
fseek
파일 입출력시 파일스트림의 현재오프셋 위치를 재조정하여 지정된 위치로 이동시키는 함수
rewind
파일 스트림의 현재 오프셋 위치를 맨처음 위치로 설정하고 파일의 맨 처음으로 이동
함수 원형
#include <stdio.h>
long ftell(FILE *fp);
int fseek(FILE *fp, long offset, int whence);
void rewind(FILE *fp);
함수 파라메터
fp
파일 포인터
offset
어느정도 이동시킬지 offset
whence
lseek의 값과 동일
함수 예제
ftell
#include<stdio.h>
#include<stdlib.h>
int main(void){
char *fname = "ssu_test.txt";
FILE *fp;
long fsize;
if((fp=fopen(fname,"r"))==NULL){
fprintf(stderr,"fopen error for %s\n",fname);
exit(1);
}
fseek(fp,0,SEEK_END);
fsize=ftell(fp);
printf("The size of<%s> is %ld bytes\n",fname,fsize);
exit(0);
}
fseek
함수 결과
ftell
fseek
리눅스시스템 프로그래밍 - 홍지만 저
교재 내에 있는 예제를 바탕으로 작성한 글 입니다.
'C & LINUX' 카테고리의 다른 글
C / LINUX sprintf(3) snprintf(3) (0) | 2022.05.02 |
---|---|
C / LINUX printf(3) fprintf(3) (0) | 2022.05.02 |
C / LINUX fread(3), fwrite(3) (0) | 2022.05.02 |
C / LINUX stat() fstat() lstat() (0) | 2022.05.01 |
C / LINUX dup() dup2() (0) | 2022.05.01 |