【기 능】 파일에서 지정한 사이즈의 데이터를 n개 읽어낸다.
【소 속】 stdio.h
#include <stdio.h>
【서 식】
size_t fread(void *buf, size_t size, size_t n, FILE *fp);
【설 명】
fp가 가리키는 파일에서 size크기(예: 1byte, 2byte, 4byte등)의 데이터를 n개 읽어내서 buf에 저장한다.
이때, 파일 포인터는 size × n 바이트분 전진한다. 에러가 발생한 경우엔 파일포인터의 위치는 부정이 된다.
【인 수】
void *buf : 읽어들인 데이터를 저장하는 장소의 포이터
size_t size : 읽어들이는 데이터 1개의 사이즈(바이트 단위)
size_t n : 읽어들이는 데이터의 갯수
FILE *fp : file pointer. fopen함수로 오픈한 파일정보를 가지고 있는 핸들러
【리턴 값】
읽기 성공시 : 읽어낸 데이터의 갯수(바이트 단위가 아니다. n개)
읽기 실패시 또는 파일종료시 : n보다 작은수
【사용 예】
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char buf[12];
size_t iRetn;
/* 읽기 모드로 파일을 오픈한다 */
if( (fp = fopen("test_data.txt", "r") ) == NULL ) {
printf("파일 오픈 에러\n");
exit(EXIT_FAILURE);
}
else{
printf("파일 오픈 성공\n");
}
/* 오픈한 파일에서 10바이트를 읽어서 화면에 출력한다 */
iRetn = fread(buf, sizeof(char), 10, fp);
fputchar(buf[0]);
fputchar(buf[1]);
fputchar(buf[2]);
fputchar(buf[3]);
fputchar(buf[4]);
fputchar(buf[5]);
fputchar(buf[6]);
fputchar(buf[7]);
fputchar(buf[8]);
fputchar(buf[9]);
fputchar('\n');
/* 오픈한 파일을 닫는다(close) */
iRetn = fclose(fp);
if(iRetn != 0){
printf("파일 클로즈 에러\n");
}
else{
printf("파일 클로즈 성공\n");
}
return 0;
}
반응형