자료출처 : 권남수님의 Game Programming을 위한 C 강의
화일 입출력
㈜ 초보의 글이므로 잘못되거나 서투른 표현이 있을 것입니다. 그러나 읽는 분을 위해 최선을....
◆ 결론 : 간단하다.
데이터를 입력할 때 보통 키보드나 마우스를 이용한다. 그러나, 이제부터는 하드에 저장된 화일로부터 이들을 읽어들이는 작업을 하게 된다. 이것을 화일 입출력이라고 한다. C에서 제공하는 화일은 기본적으로 순차 화일이다. 이러한 화일의 접근 방법 외에 직접 접근(Random Access) 등이 있다.
또한, 화일을 다룰 때 buffer를 사용하는 경우와 사용하지 않는 경우가 있다. buffer를 사용하면 저수준 입출력이라고 하고, buffer를 사용하지 않는 것을 고수준 입출력이라고 한다. (보통의 경우는 버퍼를 사용하지 않는 고수준 입출력을 사용해도 큰 문제는 없다.) 이제부터 고수준 입출력 함수를 알아보자.
1. 고수준 입출력 함수 (사용된 소스)
고수준 입출력 함수는 제공되는 FILE 구조체를 사용하게 되며, buffer를 고려하지 않는다. FILE 구조체의 내용을 자세히 알 필요는 없다. 흔히 FILE *file로 표현하여 쓰는 것 같음.
1) fopen
fopen(filename, mode);
화일이름의 화일을 mode로 지시된 대로 열게된다. 그리고 그 값을 다시 file - 위쪽의 포인터로 된 file을 뜻함 - 으로 돌려준다. mode 중 흔히 "rb"가 사용되는데 r은 읽기(read), b는 이진 파일을 뜻한다.
2) fclose
fopen(file);
화일을 닫을 때 사용한다.
3) fread
fread(str, size, items, file);
이 함수는 이진 데이터 형식의 화일을 지정된 블럭 단위로 읽는데 이용된다. 크기가 size 바이트인 데이터를 item 개수만큼 읽어 str의 위치에 기억시킨다는 뜻. str에는 items 곱하기 size만큼의 기억 장소가 필요하다.
위의 3가지가 실제 게임 제작에서 많이 사용되는 함수들이다. 그 밖의 함수들은 설명을 생략한다.
4) fseek 등. (사용된 소스)
(끝)

Comments List
釉