std::basic_filebuf<CharT,Traits>:: close
|
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) |