Программы для Linux обычно существуют в двух формах. Первая форма представляет собой исходный код (source
)— понятный человеку текст, состоящий из серий инструкций, написанных на языке программирования, например на С. Чтобы стать исполняемым, исходный код должен быть преобразован во вторую форму: двоичные (бинарные) инструкции на языке машины, понятные для компьютера. (В отличие от сценария, являющегося текстовым файлом с командами, напрямую обрабатываемыми программой, такой как оболочка или интерпретатор команд.) Два значения понятия «программы.» обычно считаются синонимами, так как в процессе компиляции и сборки исходный код преобразуется в семантически эквивалентный двоичный машинный код.
Фильтры
Понятие «фильтр» часто обозначает программу, которая считывает вводимые в нее данные из stdin
, выполняет преобразования этого ввода и записывает преобразованные данные на stdout
. Примеры фильтров: cat
, grep
, tr
, sort
, wc
, sed
и awk
.
Аргументы командной строки
В языке С программы могут получать доступ к аргументам командной строки — словам, введенным в командную строку при запуске программы. Для доступа к аргументам командной строки глобальная функция main()
программы объявляется следующим образом:
int main(int argc, char *argv[])
Переменная argc содержит общее количество аргументов командной строки, а отдельные аргументы доступны в виде строковых значений, которые нужно указать в качестве элементов массива argv. Первая из этих строк, argv[0]
, соответствует имени самой программы.