std::basic_filebuf<CharT,Traits>:: close
|
std::
basic_filebuf
<
CharT, Traits
>
*
close
(
)
;
|
||
書き込み用にファイルが開かれている場合など、プットエリアが存在する場合、まず overflow ( Traits :: eof ( ) ) を呼び出して、未処理の出力(アンシフトシーケンスを含む)をすべてファイルに書き込みます。
直前に呼び出された関数が
underflow()
、
overflow()
、
seekpos()
、および
seekoff()
の中で
overflow()
であった場合、
std::codecvt::unshift()
を(必要に応じて複数回)呼び出して設定されたロケールに従ってアンシフトシーケンスを決定し、そのシーケンスを
overflow
(
Traits
::
eof
(
)
)
を使用してファイルに書き込みます。
その後、前述の呼び出しの成功・失敗に関わらず、 std::fclose() を呼び出すかのようにファイルを閉じます。
関数呼び出し( std::fclose() の呼び出しを含む)のいずれかが失敗した場合、nullポインタを返します。関数呼び出し中に例外がスローされた場合、ファイルを閉じた後に例外をキャッチして再スローします。ファイルが既に閉じられている場合は、直ちにnullポインタを返します。
いずれの場合も、 is_open() によってアクセスされるプライベートメンバ変数を更新します。
目次 |
パラメータ
(なし)
戻り値
this 成功時は、失敗時はnullポインタ。
注記
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) |