現代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++代碼,能正確獲取到當前系統架構,親測可用!!!