Функция args_os
Функция args_os из модуля std::env возвращает
итератор, который выдаёт аргументы командной строки,
переданные программе при запуске. В отличие от функции
args, каждый аргумент представлен типом
OsString, а не String. Это позволяет
корректно работать с аргументами, которые не являются
корректным UTF-8 (например, содержащими нестандартные
байты в путях к файлам). Функция не принимает параметров.
Первый элемент итератора - это имя запущенной программы.
Синтаксис
std::env::args_os()
Пример
Давайте выведем все аргументы командной строки,
преобразовав каждый OsString в строку
через to_string_lossy:
use std::env;
fn main()
{
for arg in env::args_os() {
println!("{}", arg.to_string_lossy());
}
}
Результат выполнения кода при запуске без аргументов:
"target/debug/app"
Пример
Давайте соберём все аргументы в вектор Vec
и выведем их количество и содержимое:
use std::env;
fn main()
{
let args: Vec<_> = env::args_os().collect();
println!("Count: {}", args.len());
for arg in &args {
println!("{}", arg.to_string_lossy());
}
}
Результат выполнения кода при запуске с аргументами
abcde и 12345:
Count: 3
"target/debug/app"
"abcde"
"12345"
Пример
Давайте получим только имя программы (первый аргумент) и преобразуем его в обычную строку:
use std::env;
fn main()
{
let mut args = env::args_os();
let program = args.next().unwrap();
let name = program.to_string_lossy().to_string();
println!("Program: {}", name);
}
Результат выполнения кода:
"Program: target/debug/app"
Смотрите также
-
функция
args,
которая возвращает аргументы командной строки в виде String -
функция
vars_os,
которая возвращает переменные окружения в виде OsString -
функция
var_os,
которая возвращает значение переменной окружения в виде OsString -
функция
current_exe,
которая возвращает путь к текущему исполняемому файлу