Справочник языка Cи



         

Выполнение программы - часть 2


Для получения аргументов из командной строки и таблицы контекста в функции main должно быть объявлено три формальных параметра. В языке Си по традиции параметры функции main именуются argc, argv

и envp,

однако это не является требованием языка.

Пример объявления формальных параметров функции main:

main (int

argc, char *argv[], char *envp []){}

Если программа не требует аргументов, то функцию main

можно объявить без формальных параметров:

main()

{

}

Если аргументы передаются программе только через командную строку, то достаточно объявить только параметры argc и argv. Однако порядок объявления параметров существен; например, если программа принимает аргументы из таблицы контекста, а из командной строки не принимает, необходимо объявить все три параметра.

Параметр argv представляет собой массив адресов, каждый элемент которого указывает на строковое представление соответствующего по порядку аргумента, передаваемого программе. Параметр argc определяет общее число передаваемых аргументов. Первый элемент массива argv (т. е. argv[0]) всегда содержит имя программы, по которому она была вызвана. Этот элемент всегда заполнен, поэтому значение argc всегда равно по крайней мере 1. Доступ к первому аргументу, переданному программе, можно осуществить с помощью выражения argv[1], к последнему аргументу —argv[argc-1].

Параметр envp представляет собой указатель на массив строк, определяющих контекст, т.е. среду выполнения программы. Стандартные библиотечные функции getenv и putenv позволяют организовать удобный доступ к таблице контекста.

Существует еще один способ передачи аргументов функции main — при запуске программы как независимого подпроцесса из другой программы, также написанной на языке Си. Подробное описание этого способа приведено в разделе 12 в описании групп стандартных библиотечных функций ехес

и spawn.




Содержание  Назад  Вперед