名前空間
変種
操作

std::basic_filebuf::close

提供: cppreference.com
< cpp‎ | io‎ | basic filebuf
 
 
 
 
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() の呼び出しを含めて関数呼び出しのいずれかが失敗した場合はヌルポインタを返します。 関数呼び出しのいずれかが例外を投げた場合、その例外はキャッチされ、 std::fclose() の呼び出し後、投げ直されます。 ファイルがすでに閉じられてる場合は、直ちにヌルポインタを返します。

いずれの場合でも、 is_open() によってアクセスされるプライベートメンバ変数を更新します。

目次

[編集] 引数

(なし)

[編集] 戻り値

成功した場合は this、失敗した場合はヌルポインタ。

[編集] ノート

close() は一般的に std::basic_filebuf のデストラクタを通して呼ばれます (そしてそれは一般的に std::basic_fstream のデストラクタによって呼ばれます)。

[編集]

[編集] 関連項目

紐付けられているファイルが開いているかどうか調べます
(パブリックメンバ関数) [edit]
basic_filebuf オブジェクトを破棄し、開いている場合はファイルを閉じます
(仮想パブリックメンバ関数) [edit]