目次 - API(機能別) - ファイル入出力 - SDL_RWFromFile

SDL_RWFromFile

指定の名前のファイルの読込と書込を行うSDL_RWopsを生成する

構文

SDL_RWops* SDL_RWFromFile(const char* file, const char* mode)

引数

file開くファイルのUTF-8文字列の名前
modeファイルを開くモードを表すASCII文字列 (詳細を参照すること)

戻り値

生成したSDL_RWopsへのポインタを戻す. 失敗のときNULLを戻す. SDL_GetError()で詳細を知ることができる.

サンプルコード

SDL_RWops *file = SDL_RWFromFile("myimage.bmp", "rb");
SDL_Surface *image = SDL_LoadBMP_RW(file, 1); /* 1のとき自動的にSDL_RWopsを閉じる */
/* ここでimageを処理する */

詳細

仮にSDLが背後でfopen()を使っていないとしても, mode文字列はCのライブラリのfopen()とほぼ同じである.

利用できるmode文字列:
r読み込むためにファイルを開く. ファイルが存在している必要がある
w書き込むために空のファイルを作成する. もし既に同じ名前のファイルが存在すれば, その内容は削除され, 新しい空のファイルとして扱われる
aファイルに追加する. 書込操作はファイルの末尾に追加する. ファイルが存在しなければ作成される.
r+ファイルを読込と書込の両方のために開く. ファイルが存在している必要がある
w+読込と書込の両方のために空のファイルを生成する. もし既に同じ名前のファイルが存在すれば, その内容は削除され, 新しい空のファイルとして扱われる
a+読込と追加のためにファイルを開く. 書込操作はファイルの末尾に追加され, それ以前の内容は上書きされない. ファイルの読込位置はどこへでも変えられるが, 書込操作を行うとファイルの末尾に戻る. ファイルが存在しなければ作成される.

メモ: バイナリファイルとして開く場合は, "b"をmodeに加える必要がある. "b"を文字列の末尾("rb", "wb", "ab", "r+b", "w+b", "a+b")か文字と"+"の間("rb+", "wb+", "ab+")に追加する. 無効となるが, その後に文字を追加することがある. 例えば, テキストファイルであることを明記するために"t"をつけることもできる.

この関数はUnicodeのファイル名に対応しているが, OSに関わらずUTF-8形式でエンコードされている必要がある.

Androidでは, 代替としてSDL_RWFromFile()はassetsディレクトリの一致するファイル名のファイルを透過的に開く.

SDL_RWopsを閉じるとSDLが内部に持っているファイルハンドラも閉じる.

関連項目(関数)

SDL_RWclose
SDL_RWFromConstMem
SDL_RWFromFP
SDL_RWFromMem
SDL_RWread
SDL_RWseek
SDL_RWtell
SDL_RWwrite

SDL Wikiへのリンク

SDL_RWFromFile - SDL Wiki