Реализовать библиотеку обработки аргументов, передаваемых программе с помощью командной строки.
Ключи позволяют управлять режимами работы программы и заменяют получение параметров с помощью стандартного ввода (scanf()
).
Существуют длинная и короткая форма записи ключей.
ls -h
— короткая форма.
ls --human-readable
— длинная форма для того же ключа.
ls -ah
— короткая форма для двух ключей, аналог ls -a -h
.
Ключи имеют разный тип.
* Ключи-флаги. Могут использоваться один раз в командной строке и означают выбор (включение) некоторого режима работы. Например, ключ -h
(--human-readable
) у программы ls
(см. выше) показывает все размеры файлов в понятном для человека виде (52M, 100G и т.д.).
* Ключи со значениями. Позволяют передать в программу некоторое значение. Например, ls -w 100
(аналог с длинной формой ключа: ls --width=100
) указывает, что программа ls
должна форматировать свой вывод на ширину 100 символов.
При этом значение может иметь разный тип (число, строка).
gcc -I /usr/include -I . file.c
означает добавление двух include-каталогов при компиляции. main
указатели на argc
и argv
, в процессе работы изменяя их. После вызова функции argv[1]
будет указывать на первый не-ключевой аргумент командной строки (пример: ls -a -l dir
— после вызова argc
должно стать равным 2, а argv[1]
— указывать на аргумент "dir"
.--
означает, что ключи на этом месте кончаются. Это нужно для случаев, когда аргументом ком. строки является имя файла, начинающееся с дефиса.