본문 바로가기
C/C Library

fread

by memora 2024. 10. 17.

Index로 돌아가기  

 

 

【기  능】 파일에서 지정한 사이즈의 데이터를 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;
  }

 

 

 

 

Code::Block 실행결과

 

 

Index로 돌아가기  

반응형

'C > C Library' 카테고리의 다른 글

remove  (0) 2024.09.04
freopen  (0) 2024.08.30
fopen  (0) 2024.08.21
fgetpos  (0) 2024.08.15
fputs  (0) 2024.08.14