现代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++代码,能正确获取到当前系统架构,亲测可用!!!
