형식 정의
파일 헤더, 버전, 레코드 크기, 필드 순서를 코드와 문서에 고정한다.
매직 값 사용바이너리 파일은 빠르고 작지만 C++ 객체를 그대로 저장하면 padding, endian, 버전 변경에 취약하다. 레코드 형식, 크기, 바이트 순서, 실패 상태를 명시해야 오래 버틴다.
파일 헤더, 버전, 레코드 크기, 필드 순서를 코드와 문서에 고정한다.
매직 값 사용POD라도 reinterpret_cast 저장 전 padding과 endian을 확인한다.
그대로 저장 위험read 후 gcount와 상태를 확인해 짧은 읽기와 손상 파일을 잡는다.
부분 읽기새 필드 추가 시 이전 버전 파일을 어떻게 읽을지 분기한다.
마이그레이션