구조체 크기
멤버 사이 패딩 때문에 파일의 레코드 크기가 생각과 달라질 수 있다.
read와 write는 바이트를 그대로 옮기므로, 파일을 다시 읽을 코드가 크기, 순서, 플랫폼 차이를 같은 규칙으로 해석해야 한다.
멤버 사이 패딩 때문에 파일의 레코드 크기가 생각과 달라질 수 있다.
다른 CPU나 플랫폼에서 읽을 파일은 정수와 실수의 순서를 명시한다.
포인터 값은 실행 중 주소일 뿐이므로 파일에 저장해도 복원 의미가 없다.
레코드 구조가 바뀔 수 있으면 헤더에 버전을 두고 읽기 코드를 분기한다.
이 파일을 같은 컴파일러와 같은 구조체로만 읽을지, 아니면 장기 보관과 플랫폼 이동까지 고려해야 하는지에 따라 포맷 설계가 달라진다.