Метод 1: константа std::env::consts::OS
Стандартная библиотека Rust предоставляет удобный способ доступа к имени ОС через константу std::env::consts::OS. Эта константа возвращает строку, представляющую целевую операционную систему. Вот пример того, как его использовать:
use std::env;
fn main() {
let os_name = env::consts::OS;
println!("The current operating system is: {}", os_name);
}
Метод 2: Ящик os_info
Если вам нужна более подробная информация об операционной системе, вы можете использовать крейт os_info. Этот контейнер предоставляет функции для получения различных сведений, связанных с ОС, включая имя ОС. Чтобы использовать его, добавьте следующую зависимость к вашему Cargo.toml:
[dependencies]
os_info = "0.8.0"
Вот пример использования ящика os_info:
use os_info::Type;
fn main() {
let os_info = os_info::get();
match os_info.os_type() {
Type::Windows => println!("Running on Windows"),
Type::Linux => println!("Running on Linux"),
Type::Macos => println!("Running on macOS"),
Type::Other => println!("Running on some other OS"),
}
}
Метод 3: команда uname
Если вы предпочитаете более системно-ориентированный подход, вы можете выполнить команду uname, чтобы получить имя ОС. Для запуска команд оболочки в Rust вы можете использовать структуру std::process::Command. Вот пример:
use std::process::Command;
fn main() {
let output = Command::new("uname").arg("-s").output().unwrap();
let os_name = String::from_utf8_lossy(&output.stdout);
println!("The current operating system is: {}", os_name);
}
Метод 4: Ящик sysinfo
Для получения дополнительной информации о системе, включая название ОС, отличным выбором может стать контейнер sysinfo. Этот набор предоставляет обширный API для сбора различных сведений о системе. Чтобы использовать его, добавьте следующую зависимость к вашему Cargo.toml:
[dependencies]
sysinfo = "0.20.0"
Вот пример использования крейта sysinfoдля получения имени ОС:
use sysinfo::{System, SystemExt};
fn main() {
let mut system = System::new_all();
system.refresh_all();
let os_name = system.get_os_version().unwrap_or_else(|| String::from("Unknown"));
println!("The current operating system is: {}", os_name);
}
Вот и все! Мы рассмотрели четыре различных метода получения имени операционной системы в Rust. Вы можете выбрать тот, который лучше всего соответствует вашим потребностям и предпочтениям.
Не забудьте изучить официальную документацию по каждому методу, чтобы узнать больше об их возможностях и потенциальных ограничениях. Приятного кодирования!