среда, 6 апреля 2011 г.

[C++] Текущая директория (кроссплатформенно)

Ниже приведены три способа получить полный путь до директории из которой был запущен исполняемый файл


#ifdef _LINUX
#include <limits.h>
#include <string.h>

char path[PATH_MAX + 1] = { 0 };
ssize_t len = readlink("/proc/self/exe", path, PATH_MAX);
path[len] = 0;
char* p = strrchr(path, '/');
if(p) *(p + 1) = 0;
else path[0] = 0;
#else
#include <windows.h>

char path[_MAX_PATH];
GetModuleFileName(NULL, path, _MAX_PATH);
#endif
#include <boost/filesystem/operations.hpp>

std::string path = boost::filesystem::current_path().string();

Комментариев нет:

Отправить комментарий