Передача параметров из операционной среды

Функция main() может быть определена с параметрами, которые передаются из внешнего окружения, например из командной строки. Принято, что два первых параметра функции main(), имеют имена argc и argv, хотя это и не диктуется языком Си.

Параметр argc определяет общее число параметров, передаваемых функции main(), и объявляется как int. Параметр arпv объявляется как массив указателей, каждый элемент которого ссылается на строковое представление аргумента, передаваемое функции main(). Если функции main() передается третий параметр, этот параметр принято называть envp. Параметр envp объявляется аналогично параметру argv как массив указателей на строковые величины, определяющие операционную среду, в которой выполняется программа.

Аргумент argv[0] всегда содержит имя командной строки, поэтому значение argc на 1 превышает количество передаваемых аргументов. Аргументы командной строки могут задавать, например, режимы работы, имена файлов и другие данные для программы и отделяются друг от друга пробелами. (Если пробел должен быть представлен в аргументе, аргумент заключается в кавычки).

Полный заголовок функции main() имеет вид:

int main(int argc, char *argv[], char * envp[])

Пример: /* программа печати количества, значений фактических аргументов, передаваемых функции main(), и переменных среды */

#include <stdio.h>

#include <windows.h>

void main(int argc, char *argv[], char *envp[])

{

char cStr1[]=”Количество передаваемых аргументов”;

char cStr2[]=”Имя программы и передаваемые аргументы”;

char cStr3[]=”Переменные среды”;

CharToOem(cStr1,cStr1);

CharToOem(cStr2,cStr2);

CharToOem(cStr3,cStr3);

printf (“%s - %d\n”,cStr1,argc);

while(*argv)

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

while(*envp)

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

}

Функция int main(), как и другие функции, может возвращать целое значение. Оно передается в вызывающий процесс. Возврат нулевого значения говорит об успешном окончании работы, другие значения говорят об аварийном окончании работы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: