gpt4 book ai didi

c++ - 在 C/C++ 中自动检测操作系统

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:55 25 4
gpt4 key购买 nike

有什么方法可以使用您的 C/C++ 代码自动检测您的操作系统吗?我需要它来为 Linux、Windows 甚至在 Raspberry Pi 上运行一些跨平台代码。我正在尝试自动检测操作系统,这样我就不会陷入必须请求机器上运行的操作系统作为输入的情况。

我在考虑像验证文件系统结构之类的黑客攻击,我不知道我是否在做某事。

最佳答案

我过去使用下面的代码在 linux 和 windows 之间进行检查

#include<stdio.h>

int main(int argc, char *argv[])
{

#ifdef _WIN32
printf("in Windows");
#endif

#ifdef linux
printf("In Linux");
#endif

return 0;
}

通常所有工具链都有自己预定义的宏,因此您需要使用这些宏来检测这是哪个操作系统。

此类预定义宏的列表。

http://sourceforge.net/p/predef/wiki/OperatingSystems/


是的,作为旁注,这里使用编译时宏检测操作系统。因此,根据工具链,相应宏的定义将进入构建。

运行时检测操作系统版本,就像在java中一样

System.getProperty("os.name")

在 C/C++ 中我们没有任何 API。


在 POSIX 系统中使用 ' uname ' 我们可以获得操作系统名称。

关于c++ - 在 C/C++ 中自动检测操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34152424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com