0Pricing
Zig Academy · Урок

Чтение аргументов командной строки

Разбирайте argv с помощью аллокатора.

«Чтение аргументов командной строки» — бесплатный урок Zig Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Why Arguments Matter

A real CLI tool reacts to what the user types after its name. Those words are the command-line arguments, and reading them is step one. 🛠️

Zig Hands You Nothing Hidden

Other languages give you a magic argv variable. Zig stays explicit: you ask the std.process namespace for the arguments yourself.

const std = @import("std");

Arguments Need an Allocator

Decoding arguments may allocate memory, so Zig asks you for an allocator up front. No allocation happens behind your back.

var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const a = gpa.allocator();

argsAlloc Gives a Slice

Call std.process.argsAlloc with your allocator. It returns a slice of strings, one per argument, that you fully own.

const args = try std.process.argsAlloc(a);

Free What You Allocated

Because you own that slice, you must release it with argsFree. A defer right after the call keeps cleanup automatic.

defer std.process.argsFree(a, args);

The First Argument Is the Program

By convention args[0] is the path to your own program, not user input. The real values you care about start at index 1.

const program = args[0];

Count How Many You Got

The slice carries its own length, so args.len tells you how many arguments arrived. You check it before reaching for any index.

if (args.len < 2) return error.MissingArgument;

Loop Over the Inputs

Iterate the user values by slicing past the program name. A for loop over args[1..] visits each argument in order.

for (args[1..]) |arg| {
    std.debug.print("{s}\n", .{arg});
}

Each Argument Is Bytes

Every argument is a []const u8, a slice of bytes. Comparing or parsing one is just normal Zig string work from here.

if (std.mem.eql(u8, arg, "--help")) {}

Turn Text into Numbers

Arguments arrive as text. To get a number, parse it with std.fmt.parseInt, which fails clearly if the text is not a valid integer.

const n = try std.fmt.parseInt(i32, args[1], 10);

An Iterator Alternative

Prefer streaming? std.process.argsWithAllocator gives an iterator you advance with next(), handy when you process arguments one at a time.

var it = try std.process.argsWithAllocator(a);
defer it.deinit();

Quick Check

Think about what sits at the front of the arguments slice.

Recap

You read arguments with argsAlloc, freed them with argsFree, skipped args[0], and parsed text into values. Your CLI now hears its user. 🎯

Часто задаваемые вопросы

Урок «Чтение аргументов командной строки» бесплатный?

Да — полный текст урока «Чтение аргументов командной строки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.

Чему я научусь в уроке «Чтение аргументов командной строки»?

Разбирайте argv с помощью аллокатора. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Zig Academy?

Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Чтение аргументов командной строки»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Zig Academy?

Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Чтение аргументов командной строки
  2. Чтение файлов и stdin
  3. Запись вывода и коды завершения
  4. Упаковка и выпуск бинарного файла
← Назад к Zig Academy