下面是兼容的方法
#ifdef _WIN32
#include <windows.h>
std::string getModuleFileName() {
char path[MAX_PATH];
GetModuleFileNameA(NULL, path, MAX_PATH);
return path;
}
#else
#include <unistd.h>
#include <limits.h>
std::string getModuleFileName() {
char result[PATH_MAX];
ssize_t count = readlink("/proc/self/exe", result, PATH_MAX);
return (count != -1) ? std::string(result, count) : "";
}
#endif