Provided by: manpages-ko-dev_4.21.0-2_all bug

이름

       fread, fwrite - 이진(바이너리) 스트림 입력/출력

라이브러리

       표준 C 라이브러리 (libc, -lc)

요약

       #include <stdio.h>

       size_t fread(void ptr[restrict .size * .nmemb],
                    size_t size, size_t nmemb,
                    FILE *restrict stream);
       size_t fwrite(const void ptr[restrict .size * .nmemb],
                    size_t size, size_t nmemb,
                    FILE *restrict stream);

설명

       함수  fread()  는  stream이  가리키는 스트림에서 각 size 바이트 만큼 긴 데이터의 nmemb 요소를 읽어, ptr이
       가리키는 위치에 읽은 데이터들을 저장한다.

       함수 fwrite() 는 ptr이 가리키는 위치에 있는 데이터들을 얻어서 각  size  바이트  만큼  긴  데이터의  nmemb
       요소를 stream이 가리키는 위치의 스트림에 쓴다.

       For nonlocking counterparts, see unlocked_stdio(3).

반환값

       On  success,  fread()   and fwrite()  return the number of items read or written.  This number equals the
       number of bytes transferred only when size is 1.  If an error occurs, or the end of the file is  reached,
       the return value is a short item count (or zero).

       The  file  position  indicator  for  the  stream  is advanced by the number of bytes successfully read or
       written.

       fread() 는 EOF와 에러를 구분하지 않는다. 그리고 호출자는 무엇이 일어났는지를 결정 하기 위해  feof(3)   와
       ferror(3)  를 사용해야 한다.

속성

       이 섹션에서 사용되는 용어에 대한 설명은 attributes(7)을 참조하십시오.
       ┌─────────────────────────────────────────────────────────────────────────────┬───────────────┬─────────┐
       │ 상호 작용속성번호    │
       ├─────────────────────────────────────────────────────────────────────────────┼───────────────┼─────────┤
       │ fread(), fwrite()                                                           │ Thread safety │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────────┴───────────────┴─────────┘

표준

       POSIX.1-2001, POSIX.1-2008, C99.

폐제

       The  program  below demonstrates the use of fread()  by parsing /bin/sh ELF executable in binary mode and
       printing its magic and class:

           $ ./a.out
           ELF magic: 0x7f454c46
           Class: 0x02

   Program source

       #include <stdio.h>
       #include <stdlib.h>

       #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))

       int
       main(void)
       {
           FILE           *fp;
           size_t         ret;
           unsigned char  buffer[4];

           fp = fopen("/bin/sh", "rb");
           if (!fp) {
               perror("fopen");
               return EXIT_FAILURE;
           }

           ret = fread(buffer, sizeof(*buffer), ARRAY_SIZE(buffer), fp);
           if (ret != ARRAY_SIZE(buffer)) {
               fprintf(stderr, "fread() failed: %zu\n", ret);
               exit(EXIT_FAILURE);
           }

           printf("ELF magic: %#04x%02x%02x%02x\n", buffer[0], buffer[1],
                  buffer[2], buffer[3]);

           ret = fread(buffer, 1, 1, fp);
           if (ret != 1) {
               fprintf(stderr, "fread() failed: %zu\n", ret);
               exit(EXIT_FAILURE);
           }

           printf("Class: %#04x\n", buffer[0]);

           fclose(fp);

           exit(EXIT_SUCCESS);
       }

추가 참조

       read(2), write(2), feof(3), ferror(3), unlocked_stdio(3)

번역

       이 매뉴얼 페이지의 한국어 번역은 다음에 의해 편집되었습니다: 정강훈 <skyeyes@soback.kornet.net>

       이 번역은 무료 문서입니다. 저작권 조건에 대해서는  GNU General Public License 버전 3  이상을  읽으십시오.
       책임이 없습니다.

       이   매뉴얼   페이지의   번역에서   오류를   발견하면  translation-team-ko@googlegroups.com  로  이메일을
       보내주십시오.

Linux man-pages 6.03                            2022년 12월 29일                                        fread(3)