SDL Wiki
(This is the documentation for SDL3, which is under heavy development and the API is changing! SDL2 is the current stable version!)

SDL_GetBasePath

Get the directory where the application was run from.

Header File

Defined in <SDL3/SDL_filesystem.h>

Syntax

char* SDL_GetBasePath(void);

Return Value

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.

Remarks

This is not necessarily a fast call, so you should call this once near startup and save the string if you need it.

macOS and iOS Specific Functionality: If the application is in a ".app" bundle, this function returns the Resource directory (e.g. MyApp.app/Contents/Resources/). This behaviour can be overridden by adding a property to the Info.plist file. Adding a string key with the name SDL_FILESYSTEM_BASE_DIR_TYPE with a supported value will change the behaviour.

Supported values for the SDL_FILESYSTEM_BASE_DIR_TYPE property (Given an application in /Applications/SDLApp/MyApp.app):

Nintendo 3DS Specific Functionality: This function returns "romfs" directory of the application as it is uncommon to store resources outside the executable. As such it is not a writable directory.

The returned path is guaranteed to end with a path separator ('\' on Windows, '/' on most other platforms).

The pointer returned is owned by the caller. Please call SDL_free() on the pointer when done with it.

Version

This function is available since SDL 3.0.0.

Code Examples


char *data_path = NULL;

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

See Also


CategoryAPI, CategoryAPIFunction, CategoryFilesystem


[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.