重複の可能性:
実行可能ファイルのパスを取得
C ++でアプリケーションを使用していますが、完全なディレクトリ(このアプリケーションの.exeファイルが存在する場所)を取得するにはどうすればよいですか?
編集:OS-Windows
重複の可能性:
実行可能ファイルのパスを取得
C ++でアプリケーションを使用していますが、完全なディレクトリ(このアプリケーションの.exeファイルが存在する場所)を取得するにはどうすればよいですか?
編集:OS-Windows
ウィンドウズ:
WCHAR path[MAX_PATH];
GetModuleFileName(NULL, path, ARRAYSIZE(path));
Linux:
char buffer[MAX_PATH];
readlink("/proc/self/exe", buffer, MAX_PATH);
これに適したクロスプラットフォームソリューションはありませんが、すべての主要なプラットフォームでこれを行うことができます。
/proc/self/exe
Linuxの場合:特別なファイルを読むchar buf[PATH_MAX];
ssize_t len;
if ((len = readlink("/proc/self/exe", buf, bufsize)) != -1) {
// buf contains the path
} else {
// error
}
_NSGetExecutablePath()
関数(からman 3 dyld
)を使用します#include <stdint.h>
#include <limits.h>
uint32_t size = PATH_MAX;
char buf[PATH_MAX];
if (_NSGetExecutablePath(buf, &size) != -1) {
// buf now contains the path
} else {
// error
}
GetModuleFileName()
呼び出します。NULL
#include <windows.h>
char buffer[1024];
if (GetModuleFileName(NULL, buffer, sizeof(buffer)) != 0) {
// buffer contains the path
} else {
// error
}