std::basic_filebuf<CharT,Traits>::open
提供: cppreference.com
< cpp | io | basic filebuf
std::basic_filebuf<CharT, Traits>* open(constchar* s, std::ios_base::openmode mode ) | (1) | |
std::basic_filebuf<CharT, Traits>* open(conststd::string& str, std::ios_base::openmode mode ) | (2) | (C++11以上) |
std::basic_filebuf<CharT, Traits>* open(conststd::filesystem::path& p, std::ios_base::openmode mode ) | (3) | (C++17以上) |
std::basic_filebuf<CharT, Traits>* open(const std::filesystem::path::value_type* s, std::ios_base::openmode mode ) | (4) | (C++17以上) |
指定された名前 (オーバーロードによって s、p.c_str()(C++17以上) または str.c_str()) を持つファイルを開きます。
オーバーロード (4) は、 std::filesystem::path::value_type が char でない場合にのみ提供されます。 | (C++17以上) |
ファイルは、以下のように決定される第2引数 (mode
) を用いて std::fopen を呼んだかのように開かれます。
mode | openmode & ~ate | ファイルがすでに存在する場合の動作 | ファイルが存在しない場合の動作 |
---|---|---|---|
"r" | in | 先頭から読み込む | エラー |
"w" | out, out|trunc | 内容を破棄 | 新しく作成 |
"a" | app, out|app | ファイルに追記 | 新しく作成 |
"r+" | out|in | 先頭から読み込む | エラー |
"w+" | out|in|trunc | 内容を破棄 | 新しく作成 |
"a+" | out|in|app, in|app | 終端に書き込み | 新しく作成 |
"rb" | binary|in | 先頭から読み込む | エラー |
"wb" | binary|out, binary|out|trunc | 内容を破棄 | 新しく作成 |
"ab" | binary|app, binary|out|app | 終端に書き込み | 新しく作成 |
"r+b" | binary|out|in | 先頭から読み込み | エラー |
"w+b" | binary|out|in|trunc | 内容を破棄 | 新しく作成 |
"a+b" | binary|out|in|app, binary|in|app | 終端に書き込み | 新しく作成 |
openmode
が一覧にあるモードのいずれでもない場合、 open()
は失敗します。
開く操作が成功し、 openmode &std::ios_base::ate!=0 (ate
ビットがセットされている) の場合は、 std::fseek(file, 0, SEEK_END) を呼んだかのようにファイル位置をファイル終端に設定します (ただし file
は fopen
から返されるポインタです)。 位置設定に失敗した場合は、 close() を呼び、失敗を表すヌルポインタを返します。
紐付けられているファイルがすでに開いている場合は、直ちにヌルポインタを返します。
目次 |
[編集]引数
s, str, p | - | 開くファイル名。 s はヌル終端文字列を指していなければなりません |
openmode | - | ファイルを開くモード。 std::ios_base のモードのビット単位の論理和 |
[編集]戻り値
成功した場合は this、失敗した場合はヌルポインタ。
[編集]ノート
open()
は一般的に std::basic_fstream のコンストラクタまたは open()
メンバ関数を通して呼ばれます。
[編集]例
This section is incomplete Reason: no example |
[編集]関連項目
紐付けられているファイルが開いているかどうか調べます (パブリックメンバ関数) | |
put 領域のバッファをフラッシュし、紐付けられているファイルを閉じます (パブリックメンバ関数) |