시스템 호출 닫기 실패

시스템 호출 닫기 실패

close그리고 이것에 대한 맨페이지http://pubs.opengroup.org/onlinepubs/009695399/functions/close.html(권위 있는 것처럼 보임) close시스템 호출이 실패할 수 있다고 말했습니다.

IO 라이브러리는 이 문제를 어떻게 처리해야 합니까?

답변1

가장 걱정스러운 점은

 [EIO]              A previously-uncommitted write(2) encountered an
                    input/output error.

따라서 이상적으로는 프로그램이 특히 닫기의 반환 값을 확인해야 합니다 EIO. 파일 시스템이 가득 차면 일반적으로 쓰기가 실패하지만 이상적으로는 이러한 일이 발생하기 전에 이를 포착하기 위한 모니터링 또는 로그 회전 등이 있어야 합니다. 파일 시스템을 신뢰하지 않고 매우 중요한 데이터(예: 잘 모르겠습니다) /etc/passwd또는 결제 배치 파일을 처리하는 경우 기록된 데이터를 체크섬한 다음 기록된 내용을 확인해야 할 수도 있습니다. 파일 시스템 채우기와 관련 없는 이유로 인해 심각한 손상이 발생했습니다.

내 생각에는 파일에 쓰는 모든 프로그램이 반환값을 확인하는 것은 아니지만 사례별로 검토해야 합니다. ( libxml몇 년 전 면밀한 조사에서 오탐이 있었던 것으로 기억합니까 ?)

또한 C 라이브러리가 오류 처리를 수행하는 방법도 피하겠습니다.

관련 정보