| // https://github.com/gpakosz/whereami |
| |
| #ifndef WHEREAMI_H |
| #define WHEREAMI_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef WAI_FUNCSPEC |
| #define WAI_FUNCSPEC |
| #endif |
| #ifndef WAI_PREFIX |
| #define WAI_PREFIX(function) wai_##function |
| #endif |
| |
| /** |
| * Returns the path to the current executable. |
| * |
| * Usage: |
| * - first call `int length = wai_getExecutablePath(NULL, 0, NULL);` to |
| * retrieve the length of the path |
| * - allocate the destination buffer with `path = (char*)malloc(length + 1);` |
| * - call `wai_getExecutablePath(path, length, NULL)` again to retrieve the |
| * path |
| * - add a terminal NUL character with `path[length] = '\0';` |
| * |
| * @param out destination buffer, optional |
| * @param capacity destination buffer capacity |
| * @param dirname_length optional recipient for the length of the dirname part |
| * of the path. |
| * |
| * @return the length of the executable path on success (without a terminal NUL |
| * character), otherwise `-1` |
| */ |
| WAI_FUNCSPEC |
| int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length); |
| |
| /** |
| * Returns the path to the current module. |
| * |
| * Usage: |
| * - first call `int length = wai_getModulePath(NULL, 0, NULL);` to retrieve |
| * the length of the path |
| * - allocate the destination buffer with `path = (char*)malloc(length + 1);` |
| * - call `wai_getModulePath(path, length, NULL)` again to retrieve the path |
| * - add a terminal NUL character with `path[length] = '\0';` |
| * |
| * @param out destination buffer, optional |
| * @param capacity destination buffer capacity |
| * @param dirname_length optional recipient for the length of the dirname part |
| * of the path. |
| * |
| * @return the length of the module path on success (without a terminal NUL |
| * character), otherwise `-1` |
| */ |
| WAI_FUNCSPEC |
| int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif // #ifndef WHEREAMI_H |