Внешние параметры для программы и переменные среды


При запуске программы командной строкой в нее можно передать любые параметры. Их можно далее оформить похожим образом как опции. В общем случае функция main() получает на вход три параметра : argc – количество параметров командной строки, argv – собственно параметры командной строки и envp – переменные среды выполнения С-программ. Фактически параметр envp указывает на массив строк, описывающих среду. Каждая строка этого массива имеет вид : “имя_переменной_среды = значение”. Вся указанная последовательность является строкой.

Пример

void main (argc,argv,envp)

int argc; /*число параметров argv*/

char **argv; /*вектор параметров строк*/

char **envp; /*вектор переменных среды */

{ register int j;

register char **p;

/*печать параметров*/

for (j=0;j<argc;j++)

printf(“arg%d: %s\n”,j,argv[j]);

/* печать переменных среды */

for(p=envp; *p!=(char*)0; p++)

printf(“%s\n”,*p);

}

В данном случае имеем массивы указателей : char *argv[], * envp[];

Первый аргумент имеет отношение к строке интерпретатора:

argv[] имя пр-мы пар1\0 парargc-1 \0

argc [0..n]

. . .

Переменные среды используются программами DOS или других платформ (языка оболочки shell) и передаются программе через параметр envp.

Во втором случае оператора for выполняется проверка на равенство указателя нулю, так как количество передаваемых аргументов заранее неизвестно.

envp[] пар0 пар1… , где пар в виде указанных ранее строк

. . .

=0 (или NULL)

 

 

Вопросы для самоконтроля

  • В чем отличия выполнения операторов break и continue?
  • Как выполняется оператор for(;;){…}?
  • Для чего используется оператор defaulte?
  • В каких случаях применяется пустой оператор?
  • Допустимо ли в языке С использование короткого оператора if следующего вида «if(выражение)оператор;»?
  • Укажите условие повтора тела цикла в операторе «while(выражение)оператор;»!
  • Перечислите типы и число параметров функции main()!

Вопросы для самостоятельного изучения

  • Как выглядит синтаксис и какова семантика выполнения оператора do-while?
  • Какие типы констант могут использоваться в метках оператора case?

 



Дата добавления: 2016-05-26; просмотров: 1856;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.