Namespaces
Variants

std::basic_filebuf<CharT,Traits>:: close

From cppreference.net
std:: basic_filebuf < CharT, Traits > * close ( ) ;

만약 put 영역이 존재하는 경우(예: 파일이 쓰기 모드로 열린 경우), 먼저 overflow ( Traits :: eof ( ) ) 를 호출하여 모든 대기 중인 출력(언시프트 시퀀스 포함)을 파일에 기록합니다.

가장 최근에 호출된 함수가 underflow() , overflow() , seekpos() , 그리고 seekoff() overflow() 인 경우, std::codecvt::unshift() 를 호출하여(여러 번 호출할 수 있음) 현재 로케일에 따른 언시프트 시퀀스를 결정하고, overflow ( Traits :: eof ( ) ) 를 사용하여 해당 시퀀스를 파일에 기록합니다.

그런 다음, 앞선 호출들의 성공 여부와 관계없이 std::fclose() 를 호출하는 것처럼 파일을 닫습니다.

함수 호출 중 하나라도 실패하면, std::fclose() 호출을 포함하여, 널 포인터를 반환합니다. 함수 호출 중 하나라도 예외를 발생시키면, 파일을 닫은 후 예외를 다시 발생시킵니다. 파일이 이미 닫혀 있는 경우, 즉시 널 포인터를 반환합니다.

어떤 경우든, is_open() 에 의해 접근되는 private 멤버 변수를 업데이트합니다.

목차

매개변수

(없음)

반환값

this 성공 시, 실패 시 널 포인터.

참고 사항

close() 는 일반적으로 std::basic_filebuf 의 소멸자를 통해 호출됩니다(이는 다시 일반적으로 std::basic_fstream 의 소멸자에 의해 호출됩니다).

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 443 C++98 파일이 overflow ( EOF ) 를 사용하여 기록됨 overflow ( Traits :: eof ( ) ) 로 변경됨
LWG 622 C++98 닫기 과정에서 발생한 예외를
어떻게 처리해야 하는지 불명확했음
파일을 닫은 후에 예외를 다시 던짐

참고 항목

연결된 파일이 열려 있는지 확인
(public member function)
[virtual]
basic_filebuf 객체를 소멸시키고 파일이 열려 있을 경우 닫음
(virtual public member function)