РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1027 of 1245 menu

Константа FAMILY

Константа FAMILY из модуля std::env содержит строку, которая определяет семейство операционной системы, для которой была скомпилирована программа. Значение этой константы задаётся во время компиляции и соответствует целевому триплету. Константа не принимает параметров и возвращает значение типа &'static str.

Возможные значения константы: "unix" для Unix-подобных систем (Linux, macOS, BSD и другие), "windows" для Windows, "wasm" для WebAssembly и другие значения для остальных платформ. Это позволяет писать код, зависящий от семейства операционной системы, без использования дополнительных крейтов.

Синтаксис

std::env::FAMILY

Пример

Давайте выведем значение константы FAMILY в консоль:

fn main() { let res = std::env::FAMILY; println!("{}", res); }

Результат выполнения кода на Linux:

"unix"

Пример

Давайте проверим, к какому семейству операционных систем относится текущая платформа, и выведем соответствующее сообщение:

fn main() { if std::env::FAMILY == "unix" { println!("This is a Unix-like system"); } else if std::env::FAMILY == "windows" { println!("This is Windows"); } else { println!("Unknown family: {}", std::env::FAMILY); } }

Результат выполнения кода на Linux:

"This is a Unix-like system"

Пример

Давайте используем константу FAMILY для условной компиляции кода, зависящего от платформы:

fn main() { let res = if cfg!(target_family = "unix") { "unix-specific code" } else if cfg!(target_family = "windows") { "windows-specific code" } else { "other code" }; println!("{}", res); }

Результат выполнения кода на Linux:

"unix-specific code"

Смотрите также

  • константа OS,
    которая содержит имя операционной системы
  • константа ARCH,
    которая содержит архитектуру процессора
  • константа EXE_EXTENSION,
    которая содержит расширение исполняемых файлов
  • константа DLL_SUFFIX,
    которая содержит суффикс динамических библиотек
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить