관리 메뉴

드럼치는 프로그래머

[C/C++] fread(), fwrite() 본문

★─Programing/☆─C | C++

[C/C++] fread(), fwrite()

드럼치는한동이 2009. 1. 30. 09:24

#include<stdio.h>

 

size_t fread(void *ptr1, size_t size, size_t obj, FILE *fp);

 

size_t fwrite(const void *ptr2, size_t size, size_t obj, FILE *fp);

 

return : number of object read or written.

 

 

우선 짚고 넘어가자.

 

fprintf()나 fscanf()의 경우에는 특정 데이터를 형태별로 입/출력한다.

 

즉 %d나 %c형으로 읽고 쓸 수 있다는 점에서 text파일용으로 사용을 많이 한다.

 

하지만, fread()나 fwrite()의 경우에는 사용자정의 데이터타입(구조체나 define된 것등)등을

 

스트림형태로 입/출력(컴퓨터에서 있어서는 데이터란 문자, 숫자로 나뉘는 것이 아니라 연속

 

된 바이트의 흐름일뿐이다. 이를 스트림이라고 한다.)이 가능하다. 때문에 데이터파일을

 

읽거나 쓰는 경우에 사용한다.

 

fread의 경우 리턴값이 obj보다 작으면 EOF을 만나거나 혹은 에러이다.

 

<ptr>

 

- 읽어올 구조체나 배열의 주소.

 

   ex > a라는 구조체가 있다면, &a와 같다.

 

<size>

 

- 읽어올 바이트수. sizeof()를 사용하기도 한다.

 

<obj>

 

- 입출력을 수행할 객체의 수.

 

<fp>

 

- 작업을 수행할 파일의 포인터.

 

<ptr2>

 

- 쓸 구조체나 배열의 주소.


Comments