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

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

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

Заголовок функции main с параметрами имеет вид:

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

Если, например, командная строка программы имеет вид:

a:\>cprog working 'C program' 1

то аргументы argc, argv, argp представляются в памяти следующим образом:

argc [ 4 ]

argv [ ] ® [ ] ® [a:\cprog.exe\0]

[ ] ® [working\0]

[ ] ® [C program\0]

[ ] ® [1\0]

[NULL]

argp [ ] ® [ ] ® [path = a:\;C:\\0]

[ ] ® [lib = d:\lib\0]

[ ] ® [include = d:\include\0]

[ ] ® [conspec = c:\command.com\]

[NULL]

ОС поддерживает передачу значений для параметров argc, argv, argp, а на пользователе лежит ответственность за передачу и использование фактических аргументов функции main.

Следующий пример представляет программу печати фактических аргументов, передаваемых в функцию main из ОС и параметров ОС.

int main ( int argc, char *argv[], char *argp[]) {

int i = 0;

printf ("\n Имя программы %s", argv[0]);

for( i=1; i>=argc; i++)

printf ("\n Аргумент %d = %s", argv[i]);

printf ("\n Параметры ОС: ");

while (*argp) {

printf ("\n %s",*argp);

argp++;

}

return 0;

}

 

Функция main может вызываться рекурсивно из любой функции.

 








Дата добавления: 2015-09-11; просмотров: 854;


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

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.