Вы разработчик Rust и хотите определить, в какой операционной системе (ОС) работает ваш код? Вы пришли в нужное место! В этом сообщении блога мы рассмотрим несколько методов проверки ОС в Rust. Итак, возьмите свой любимый напиток, расслабьтесь и начнем!
Метод 1: крейт os_type
Один популярный способ определить ОС в Rust — использовать крейт os_type
. Этот ящик представляет собой простое и кроссплатформенное решение. Вы можете добавить его в свой файл Cargo.toml
следующим образом:
[dependencies]
os_type = "0.4"
Вот пример фрагмента кода, демонстрирующий, как использовать крейт os_type
:
use os_type::current_platform;
fn main() {
let platform = current_platform();
println!("OS: {:?}", platform.os_type);
}
Метод 2: константа std::env::consts::OS
.
Стандартная библиотека Rust предоставляет константу std::env::consts::OS
, которая дает вам имя текущей операционной системы. Вы можете получить к нему доступ следующим образом:
fn main() {
let os = std::env::consts::OS;
println!("OS: {}", os);
}
Метод 3: необработанные системные вызовы
Если вы любите приключения и хотите перейти на низкоуровневый уровень, Rust позволяет вам выполнять необработанные системные вызовы для получения информации, специфичной для ОС. Вы можете использовать крейт libc
для взаимодействия с базовой библиотекой C. Вот пример:
#[cfg(unix)]
fn main() {
use libc::uname;
use std::mem;
unsafe {
let mut utsname: libc::utsname = mem::zeroed();
uname(&mut utsname);
let os = String::from_utf8_lossy(&utsname.sysname[..]).to_string();
println!("OS: {}", os);
}
}
#[cfg(windows)]
fn main() {
println!("Windows");
}
Метод 4: обнаружение на основе функций
Если вы конкретно заинтересованы в обнаружении определенных функций, поддерживаемых различными операционными системами, вы можете использовать обнаружение на основе функций Rust. Вот пример:
#[cfg(target_os = "linux")]
fn main() {
println!("Linux");
}
#[cfg(target_os = "macos")]
fn main() {
println!("macOS");
}
#[cfg(target_os = "windows")]
fn main() {
println!("Windows");
}
Независимо от того, решите ли вы использовать внешний крейт или использовать встроенные функции Rust, эти методы помогут вам определить операционную систему, с которой вы работаете. Приятного кодирования!