Soft Ware/C 언어!!

fseek 사용하기 ^^

달려가보자 2012. 1. 30. 22:16


#include <stdio.h>
#include <string.h>

int main()
{
 FILE *Test=0,*Test2 = 0,*Test3 = 0;
 char buffer[1000] = {0,};
 char * freadData = 0;
 int count = 0;
 char str[128]="String";
 int i = 1234;
 double d = 3.1416;
 //Test = fopen("book.txt","r+t");
 Test2 = fopen("book.txt","r+t");
 Test3 = fopen("book4.txt","w+t");
 fseek(Test2,5,SEEK_CUR);
 i = fread(buffer,1,300,Test2);
 fwrite(buffer , 5, i,Test3);
 
 //fprintf(Test2,"%d %f %s",i,d,str);

 return 0;
}

이 소스를 분석하기 전에

fseek 에 대해 설명 하겠습니다. fseek은 파일 포인터인 FP를 이동하는 함수이다 .

파일은 읽기 위해서는 FP가 가르키는 곳에서 부터 읽어야 되기 때문에

fseek 함수를 사용하면 내가 원하는 곳부터 파일을 읽을 수 있다 .

자 그럼 우선 fseek 함수 매개 변수 부터 정리 해보겠습니다.

fseek 함수의 매개변수는 파일에 대한 포인터 , 몇 바이트를 이동해서 읽을 것인지, 모드

인데 여기서 모드는 SEEK_CUR , SEEK_SET , SEEK_END 가 존재 한다.

SEEK_CUR 은 현재 위치 , SEEK_CUR 는 선두를 기준으로 뒤로 이동 , SEEK_END는 끝을 기준으로 

앞으로 이동한다.

그럼 소스를 분석해 보겠다 . 

이 소스는 FP를 5바이트를 증가 해 놓고 그 위치에서부터 뒤로 파일을 읽는 소스이다 ^^