名前空間
変種
操作

std::basic_filebuf::open

提供: cppreference.com
< cpp‎ | io‎ | basic filebuf
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
(C++98で非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(C++98で非推奨)
(C++98で非推奨)
(C++98で非推奨)
同期化出力
エラーカテゴリインタフェース
(C++11)
 
 
std::basic_filebuf<CharT, Traits>* open( const char* s,
                                         std::ios_base::openmode mode )
(1)
std::basic_filebuf<CharT, Traits>* open( const std::string& str,
                                         std::ios_base::openmode mode )
(2) (C++11以上)
std::basic_filebuf<CharT, Traits>* open( const std::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以上)

指定された名前 (オーバーロードによって sp.c_str() (C++17以上) または str.c_str()) を持つファイルを開きます。

オーバーロード (4) は、 std::filesystem::path::value_typechar でない場合にのみ提供されます。

(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) を呼んだかのようにファイル位置をファイル終端に設定します (ただし filefopen から返されるポインタです)。 位置設定に失敗した場合は、 close() を呼び、失敗を表すヌルポインタを返します。

紐付けられているファイルがすでに開いている場合は、直ちにヌルポインタを返します。

目次

[編集] 引数

s, str, p - 開くファイル名。 s はヌル終端文字列を指していなければなりません
openmode - ファイルを開くモード。 std::ios_base のモードのビット単位の論理和

[編集] 戻り値

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

[編集] ノート

open() は一般的に std::basic_fstream のコンストラクタまたは open() メンバ関数を通して呼ばれます。

[編集]

[編集] 関連項目

紐付けられているファイルが開いているかどうか調べます
(パブリックメンバ関数) [edit]
put 領域のバッファをフラッシュし、紐付けられているファイルを閉じます
(パブリックメンバ関数) [edit]