Читайте также:
|
|
Определена с параметрами, котороые передаются из внешнего окружения.
Принято, что два первых параметра называются argc и argv. хотя можно
Взять и другие названия.
Параметр argc определяет общее число аргументов в командной строке и
Объявляется как int. Параметр argv объявляется как массив указателей, каждый
Из которых указывает на строковое представление аргумента в командной строке.
Если функции main передается третий параметр, то этот параметр принято
Называть envp. Параметр envp определяется аналогично параметру argv как массив
Указателей на строки, задающие переменные среды окружения.
Спецификация вызываемой программы тоже считается аргументом. Например, для командной строки
c:\work\dir1>copy a:\primer.txt b:\primer.txt cp vladu
Значение argc будет равно 3.
При этом аргументы имеют представление в памяти, как это показано
Ниже.
Argv
è c: \w o r к \ d i r 1 \ c o p y
è a: \ p r i m e r. t x t
è b: \ p r i m e r. t x t
NULL
...
Envp
è p a t h = a: \; c:
è l i b = d: \ l i b
NULL
...
Ниже приведен пример программы echo, назначение которой печатать значения аргументов командной строки, за исключением первого. Вставляя обращения к такой программе в командные файлы, можно при их выполнении выводить нужные сообщения на экран дисплея.
#include <stdio.h>
void main(int argc, char * argv[])
{
Int i;
for(i=1; i<argc; i++)
printf("%s%c",argv[i],(i<argc-1)?' ':'\n');
}
Второй пример демонстрирует печать, как аргументов командной строки, так и печать переменных среды окружения. При этом аргументы argv и envp описываются другим допустимым способом.
#include <stdio.h>
void main(int argc, char ** argv, char ** envp)
{
Int i;
char ** p;
// печать значений параметов
for(i=0; i<argc; i++)
printf("argv%d=%s\n",i,argv[i]);
// печать значений переменных среды окружения
for(p=envp; *p!=(char *)0; p++)
printf("%s\n",*p);
}
Для получения информации о переменных среды окружения пользователь может применить функцию getenv. имеющий следующий прототип
#include <stdlib.h>
char * getenv(const char *varname)
Функция возвращает значение на строку, содержащую значение переменной среды окружения varname. В случае неуспеха (нет такой переменной) возвращается
значение NULL или указатель на пустую строку (в зависимости от версии системы). Ниже приведена программа, использующая эту функцию:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
Void main(void)
{
cout << "\n" << getenv("CLIPPER");
Getch();
}
Если в пространстве переменных среды окружения есть предложение
CLIPPER=F90;E0
то будет напечатано:
F90;E0
Дата добавления: 2015-07-07; просмотров: 114 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Указатель на функцию | | | Лекция № 1. Введение в биотехнологию. Биообъекты как средство производства лекарственных средств |