fread(), fwrite() 사용법?

글쓴이: 익명 사용자 / 작성시간: 일, 2002/01/27 - 11:46오전
이진 파일로 쓰기를 하려고 하면서
fread(), fwrite()헤더를 봤습니다.
size_t fread( void *dest, size_t size, size_t mem, FILE *fp );
size_t fwrite( const void *dest, size_t size, size_t mem, FILE *fp );
FILE *에서 dest의 내용을 읽고 쓴다는 것은 알겠습니다.
그리고 두번째 파라미터 size는 그 크기이고...
그런데 mem의 내용은 무엇인지 잘 모르겠습니다.
어디에도 이것은 "자료의 개수"라고만 되어있어,
구체적인 의미를 찾지 못했습니다.
쓸 때는 여기에 size와 같은 값을 주어 호출하기는 했습니다만...
원래 이렇게 쓰도록 파라미터를 분리하지를 않았을 것이고...
혹시 구조체 멤버의 개수를 가리키는 걸까요?
(그럼 구조체가 아닌 데이터를 읽고 쓸 때는 뭐가 되라고?)
Forums:
Re: fread(), fwrite() 사용법?
두번째 arg인 size는 자료의 개당 byte수를 의미합니다.
세번째 arg인 mem은 저장하고자 하는 자료의 갯수,
즉 다음과 같은경우
#define MAXCOUNT 10
struct {
...
} MyData;
MyData *pBuffer = (MyStruct *)malloc(sizeof(MyData) * MAXCOUNT);
fread(pBuffer, sizeof(MyData), MAXCOUNT, fp);
이런식이 되겠죠.
댓글 달기