SDL_GetBasePath(3)

NAME
SDL_GetBasePath - Get the directory where the application was run from.

SYNOPSIS
#include <SDL3/SDL_filesystem.h>

const char * SDL_GetBasePath(void);

DESCRIPTION
SDL caches the result of this call internally, but the first call to this function is not necessarily fast, so plan accordingly.

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):

• resource: bundle resource directory (the default). For example: /Applications/SDLApp/MyApp.app/Contents/Resources

• bundle: the Bundle directory. For example: /Applications/SDLApp/MyApp.app/

• parent: the containing directory of the bundle. For example: /Applications/SDLApp/

Android Specific Functionality: This function returns "./", which allows filesystem operations to use internal storage and the asset system.

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).

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.

THREAD SAFETY
It is safe to call this function from any thread.

AVAILABILITY
This function is available since SDL 3.2.0.

SEE ALSO
SDL_GetPrefPath(3)