现代c++获取linux系统架构
- 前言
- 一、使用命令获取系统架构
- 二、使用c++代码获取系统架构
- 三、验证
- 四、总结
前言
本文介绍一种使用c++获取linux系统架构的方法。
一、使用命令获取系统架构
linux
系统中可以使用arch
或者uname -m
命令来获取当前系统架构,如下图所示
arch
uname -m
二、使用c++代码获取系统架构
需要包含<sys/utsname.h>
这个头文件
接口如下
std::string Arch() {struct utsname sysInfo {};if (uname(&sysInfo) == 0) {return sysInfo.machine;}std::cerr << "无法获取系统信息!" << std::endl;return {};
}
三、验证
在main.cpp
中写下如下代码
#include <iostream>
#include <string>
#include <sys/utsname.h>std::string Arch() {struct utsname sysInfo {};if (uname(&sysInfo) == 0) {return sysInfo.machine;}std::cerr << "无法获取系统信息!" << std::endl;return {};
}int main() {std::cout << Arch() << std::endl;return 0;
}
编译并执行,g++ main.cpp -o main && ./main
,执行结果如下
可以正确获取我虚拟机的架构。
交叉编译一下,放到开发板中运行aarch64-linux-gnu-g++ main.cpp -o main
, 结果如下
也能正确获取到开发板架构。
四、总结
使用上诉的c++代码,能正确获取到当前系统架构,亲测可用!!!