问题很简单。我想要一个函数(C++)或方法,它会在调用时返回类似
的东西"Windows" //or
"Unix"
没什么花哨的,我不需要版本号或任何东西。只是操作系统名称。一个快速的谷歌搜索没有发现任何有用的东西,所以我想我会在这里发布这个
最佳答案
因为你不能有一个在所有操作系统上运行的二进制文件,你需要重新编译你的代码。可以使用 MACRO。
使用宏如
_WIN32
_WIN64
__unix
__unix__
__APPLE__
__MACH__
__linux__
__FreeBSD__
喜欢这个
std::string getOsName()
{
#ifdef _WIN32
return "Windows 32-bit";
#elif _WIN64
return "Windows 64-bit";
#elif __APPLE__ || __MACH__
return "Mac OSX";
#elif __linux__
return "Linux";
#elif __FreeBSD__
return "FreeBSD";
#elif __unix || __unix__
return "Unix";
#else
return "Other";
#endif
}
你应该阅读编译器的手册,看看他们提供了哪些宏来在编译时检测操作系统。
关于c++ - 如何找到操作系统的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15580179/