[리눅스 시스템 프로그래밍] 5.9 바이너리 모드 입출력 함수, fread, fwrite

프로세스의 메모리 상태를 파일에 기록해 두었다가 다음 실행 시점에 로딩하여 상태를 복원하는 것은 매우 흔한 일입니다. 이 때 텍스트 모드로 모든 멤버를 하나 하나 기록하여 로딩하는 것 보다 메모리를 덤핑하여 파일에 기록하고 로딩하는 바이너리 모드의 입출력 함수를 사용하는 것이 효과적입니다. 표준 입출력 라이브러리에서는 바이너리 모드의 입출력 함수로 fread와 fwrite를 제공하고 있어요.

 

#include <stdio.h >

size_t fread(void *ptr, size_t size, size_t nobj, FILE *fp);

size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *fp);

반환 값: 읽거나 기록한 object 개수

다음은 사용자 정의 형식인 Member 구조체를 원소로 하는 배열의 내용을 파일에 기록하였다가 로딩하여 출력하는 예제 코드입니다.

 

 

[그림 5.12] ex_binio 실행 화면
[그림 5.12] ex_binio 실행 화면