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

# SDL_GetBasePath

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

## 構文

`char* SDL_GetBasePath(void)`

## 戻り値

アプリケーションデータディレクトリのUTF-8の絶対パス名を戻す. 失敗またはこの関数が実装されていない環境の場合NULLを戻す. SDL_GetError()で詳細を知ることができる.

## サンプルコード

``

    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/

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

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

## バージョン

SDL 2.0.1以降

## 関連項目(関数)

SDL_GetPrefPath

## SDL Wikiへのリンク

SDL_GetBasePath - SDL Wiki