관리 메뉴

History

fread 본문

C,C++/개념 실습 프로그래밍

fread

luckybee 2022. 7. 14. 14:00
728x90
반응형
size_t fread(
   void *buffer,
   size_t size,
   size_t count,
   FILE *stream
);

fread의 도움말을 보면 이렇게 함수의 인자 값이 나와있는데 이 값들은 

 

buffer: 데이터의 스토리지 위치입니다.

size: 항목 크기(바이트)입니다.

count: 읽힐 항목의 최대 수입니다.

stream: FILE 구조체에 대한 포인터입니다.

 

위의 설명과 같다 예를 들면 아래와 같이 파일 포인터와 구조체가 형성되어있다.

 

sturct DB{
   UINT32 a;
   UINT32 b;
};

DB db[5];

FILE*p_file=NULL;

이제 fread함수로 구조체에 데이터를 읽어온다고 가정하면 

fread(db,sizeof(db),5,p_file);

이렇게 코드가 구성된다. 2번째 인자가 1 개 항목의 크기이고 3번째 인자가 항목의 개수를 의미이기 때문입니다.

 

구조체가 배열이 아니라 단일 갯수면 아래와 같이 사용할 수 있습니다. 

fread(db,sizeof(db),1,p_file);

 

또한 fread함수는 호출에 성공했으면 1이 반환되고 반대로 파일에 데이터가 없거나 부족해서 sizeof보다 적게 읽었다면 함수의 반환 값은 0이 됩니다. 

728x90
반응형
Comments