c++ - 如何找到操作系统的名称?

标签 c++ operating-system

问题很简单。我想要一个函数(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/

相关文章:

c++ - 为什么这段代码会陷入死循环?

c++ - 如何将 emscripten 与闭包工具结合使用

c++ - 如何知道C和C++中数据和代码的虚拟地址?

gcc - gcc 原子内置函数的头文件

c++ - 对于指向派生对象的基类型指针,make_unique 的语法是什么?

python - 一种将 C++ 对象传递给 cython 中另一个对象的方法的方法

c++ - c++链表不再占用Ram空间?

c++ - 是否可以从 ELF Core 文件中删除堆?

macos - NSSharingService 在消息编辑器中填充 "To:"字段

c++ - std::ws 应该在文件末尾引发 failbit 吗?