쓰기 결과가 이상하면 증상에서 모드, 버퍼, 상태로 거꾸로 추적한다
텍스트 쓰기 문제는 대부분 열기 모드, 버퍼 반영 시점, 상태 플래그 중 하나에서 시작됩니다. 증상을 기준으로 보면 원인을 빠르게 좁힐 수 있습니다.
증상
먼저 볼 위치
수정 방향
증상기존 내용이 사라짐
먼저 볼 위치
out / trunc 기본 쓰기 모드가 파일을 비웠는지 봅니다.수정 방향로그라면
ios::app을 명시합니다.증상파일에 바로 안 보임
먼저 볼 위치
flush / close 버퍼가 아직 OS로 전달되지 않았을 수 있습니다.수정 방향중요 기록은 flush 시점을 명확히 둡니다.
증상쓰기 실패
먼저 볼 위치
fail / bad 권한, 디스크 공간, 장치 오류를 확인합니다.수정 방향쓰기 후 상태를 확인하고 사용자에게 원인을 알립니다.
증상형식이 깨짐
먼저 볼 위치
newline / separator 줄바꿈과 구분자 정책을 봅니다.수정 방향읽기 코드와 같은 형식 계약을 유지합니다.
모드 선택덮어쓰기와 추가 쓰기를 코드에서 명시적으로 구분합니다.
버퍼 반영실시간 로그나 오류 기록은 flush 비용과 필요성을 함께 봅니다.
상태 확인열기 성공 후에도 쓰기와 close 이후 상태를 확인합니다.
파일 쓰기는 프로그램 밖의 상태를 바꾸는 작업입니다. 실행 전후 파일 내용이 어떻게 달라질지 먼저 예측해야 합니다.