目次 - API(機能別) - ファイルシステム - SDL_GetBasePath

SDL_GetBasePath

アプリケーションを起動したディレクトリを得る. ここがアプリケーションデータディレクトリである.

構文

char* SDL_GetBasePath(void)

戻り値

Returns an absolute path in UTF-8 encoding to the application data directory. NULL will be returned on error or when the platform doesn't implement this functionality, call SDL_GetError() for more information. アプリケーションデータディレクトリのUTF-8の絶対パス名を戻す. 失敗またはこの関数が実装されていない環境の場合NULLを戻す. SDL_GetError()で詳細を知ることができる.

戻されたパスは最後が区切り記号(Windowsなら'\', 他の環境なら'/')で終わっていることが保障されている.

このポインタの管理はプログラマが行う. 使い終わったらSDL_free()を呼ぶ必要がある.

サンプルコード

char *data_path = NULL;

void InitializeDataPath() {
    char *base_path = SDL_GetBasePath();
    if (base_path) {
        data_path = base_path;
    } else {
        data_path = SDL_strdup("./");
    }
}

詳細

この関数は速い必要はない. それにも関わらず速さが必要ならば, 最初に呼んだときに文字列を保存する必要がある.

Mac OS XとiOSの特別な仕様: アプリケーションが".app"バンドルされていれば, この関数はリソースディレクトリ(例: MyApp.app/Contents/Resources/)を戻す. この動作はInfo.plistにプロパティを追加して上書きできる. SDL_FILESYSTEM_BASE_DIR_TYPE 文字列キーに値を追加すると動作を変えられる.

SDL_FILESYSTEM_BASE_DIR_TYPE プロパティの値 (アプリケーションは /Applications/SDLApp/MyApp.app にあるとする):
説明
resourceバンドルされたリソースディレクトリ (デフォルト)/Applications/SDLApp/MyApp.app/Contents/Resources
bundleバンドルディレクトリ/Applications/SDLApp/MyApp.app/
parentバンドルディレクトリのあるディレクトリ/Applications/SDLApp/

バージョン

SDL 2.0.1以降

関連項目(関数)

SDL_GetPrefPath

SDL Wikiへのリンク

SDL_GetBasePath - SDL Wiki