경로 결정
상대 경로 기준과 디렉터리 존재 여부를 먼저 확인한다.
작업 디렉터리 한계텍스트 파일 쓰기는 문자열을 내보내는 일이지만, 실제 버그는 열기 모드, 인코딩, flush, 실패 상태를 놓칠 때 생긴다. append와 truncate, newline 정책, close 시점까지 계약으로 둔다.
상대 경로 기준과 디렉터리 존재 여부를 먼저 확인한다.
작업 디렉터리 한계기본은 덮어쓰기이며 누적 로그는 ios::app을 명시한다.
truncate/app 구분operator<<, write, format 결과를 사용하되 줄바꿈과 locale 영향을 확인한다.
텍스트 계약쓰기 후 fail이나 bad 상태를 확인하고 close 시점 오류도 고려한다.
디스크 full 가능std::ofstream out(path, std::ios::app);
if (!out) throw std::runtime_error("open failed");
out << line << '\n';
if (!out) throw std::runtime_error("write failed");