FILE 입출력 기본 정리

FILE(파일): 디스크에 정보가 저장되는 단위로,고유의 이름을 가진다.
 

파일을 사용하는 이유
1. 큰정보를 밖으로 빼낸다. 모든정보를 다 가지지 않고 나눈다
2. 프로그램의 작업결과를 영구적으로 저장하기 위해서도 파일을 사용한다.


파일 엑세스하는 방법 5가지
1.고수준 파일핸들
2.저수준 파일핸들
3.C++ 스트림 객체
4.윈도우 API함수
5.클래스 라이브러리가 제공하는 파일 액세스 객체

고수준과, 저수준의 가장 큰 차이점은 버퍼의 유무이다.
고수준은 버퍼를 사용한다. 버퍼는 파일로부터 입출력되는 데이터를 잠시 저장하는 메모리영역으로 가급적이면 하드디스크 액세스하는 회수를 줄이기 위해 버퍼를 사용함
한번읽을때 미리 주변데이터를 버퍼에 읽어 놓으면 다음 읽기 요청은 하드 디스크 액세스 없이 버퍼에서 바로 읽을 수 있다.
 

*스트림이라는 용어는 흐름을 의미
즉 바이트들이 순서대로 입출력되는 논리적 장치를 스트림이라고함 

 

파일 위치 지시자(File Position Indicator) 라는 것이 있다.

임의의 파일을 하나개방하고 데이터를 읽어들이기 위한 함수를 여러번 호출하면 신기하게도 이전에 읽어들인 부분의 뒤를 이어서 데이터를 읽어들인다 이러한 일이 가능하다는 것은 파일을 어디까지 읽었는지 혹은 어디까지 썼는지 그 위치를 기억하고 있다는 뜻이다.

이러한 정보를 기억하고 있는 변수가 존재하는데 이를 파일 위치 지시자라 한다.
이 파일 위치 지시자는 FP라고 부르며, 최초파일을 열 때 FP는 선두를 가리키고 있으며 스트림에서 내용을 읽거나 쓸 때 FP는 액세스한 만큼 자동으로 뒤로 이동한다. 

파일 위치 지시자는 FILE 구조체 변수 내에 존재한다.



 
소스분석: 

[출처] 파일 입출력함수|작성자 윈32


FILE* fp;

//일단 파일 입출력할때는 위와 같은 파일포인터 선언이 필요하답니다.
//파일을 제어할수 있는 포인터를 선언하는 것이죠!

fp = fopen("SKMAGIC.txt","r");
fclose( fp );

//fopen() 하고 fclose()함수는 파일 입출력에서 꼭 나오는 것들입니다.
//열고 닫아준다고 쉽게 이해하면 되겠네요.

//열고 닫으면 뭐 주나요?
//뭘 해야죠~! 그냥 자주 쓰일만한 간단한 함수를 알아보면

fputc('a',fp);
fgetc(fp);

//fputc와 fgetc는 파일에다 한글자씩 넣구 또 한글자씩 얻어오는 함수에요~!

fprintf(fp,"어쩌구 저쩌구  내나이 : %d",age);
fscanf(fp,"%d",&number);

//fprintf()는 파일에 그 내용을 출력해주고 (즉 파일에 쓰는 개념)
//fscanf()는 파일에서 내용을 얻어오는거죠 (즉 파일에서 얻어오는 개념)

//자 여기까지 봤을때
//착한 우리들은 파일 입출력에 쓰이는 함수는
//우리가 지금까지 써온 함수들에 f를 붙인걸 알수 있네요~!
//여기 나온 함수들 외에도 더 있겠다는걸 우리는 짐작할수 있습니다~~! 



<<< fgetc() 함수를 이용한 문자 얻기 TIP>>>



이 글을 공유하기

댓글

Designed by JB FACTORY