在 C++ 中,可以使用 Windows API 函数 GetModuleFileName
来获取当前进程的模块文件名(包括路径和文件名)
#include#include #include std::string GetProcessName() { char buffer[MAX_PATH]; GetModuleFileName(NULL, buffer, MAX_PATH); std::string processPath = buffer; size_t lastSlash = processPath.find_last_of("\\/"); if (lastSlash != std::string::npos) { return processPath.substr(lastSlash + 1); } else { return processPath; } } int main() { std::string processName = GetProcessName(); std::cout << "Current process name: "<< processName<< std::endl; return 0; }
这个示例代码定义了一个名为 GetProcessName
的函数,该函数使用 GetModuleFileName
函数获取当前进程的模块文件名。然后,它从路径中提取文件名并返回。在 main
函数中,我们调用 GetProcessName
函数并输出结果。
请注意,这个示例仅适用于 Windows 平台。如果你需要在其他平台上实现类似的功能,你可能需要使用不同的方法。例如,在 Linux 上,你可以使用 /proc/self/exe
符号链接来获取当前进程的可执行文件路径。