Реализовать библиотеку обработки аргументов, передаваемых программе с помощью командной строки.
Ключи позволяют управлять режимами работы программы и заменяют получение параметров с помощью стандартного ввода (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".-- означает, что ключи на этом месте кончаются. Это нужно для случаев, когда аргументом ком. строки является имя файла, начинающееся с дефиса.