69730

Параметри функції main( )

Домашняя работа

Информатика, кибернетика и программирование

Параметр argv - масив покажчиків на рядки; argc - параметр типа int, значення якого визначає розмір масиву argv, тобто кількість його елементів, envp - параметр-масив покажчиків на, символьні рядки, кожна з яких містить опис однієї із змінних середовища (оточення).

Украинкский

2014-10-09

32 KB

0 чел.

Самостійне вивчення

Тема 7: Параметри функції main( )

Відповідно до синтаксису мови Сі основна функція кожної програми може мати такий заголовок:

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

Параметр argv - масив покажчиків на рядки; argc - параметр типа int, значення якого визначає розмір масиву argv, тобто кількість його елементів, envp - параметр-масив покажчиків на, символьні рядки, кожна з яких містить опис однієї із змінних середовища (оточення). Під середовищем розуміється та програма (звичайно це операційна система), яка "запустила" на виконання функцію main().

Призначення параметрів функції main() — забезпечити зв'язок виконуваної програми з операційною системою, точніше, з командним рядком, з якого запускається програма і в яку можна вносити дані і тим самим передавати виконуваній програмі будь-яку інформацію.

Якщо усередині функції main() немає необхідності звертатися до інформації з командного рядка, то параметри звичайно опускаються.

Якщо програміст "запускає" програму на мові Сі з інтегрованого середовища розробк (наприклад, Turbo C), то він рідко використовує командний рядок і повинен вживати спеціальні заходам, щоб побачити цей рядок або внести в нього потрібну інформацію. (В Turbo С потрібно в головному меню вибрати пункт RUN, а потім в спадаючому меню вибрати пункт ARGUMENTS...).

При запуску програми з операційної системи командний рядок явно доступний, і саме в ньому записується ім'я виконуваної програми. Вслід за ім'ям можна розмістити потрібну кількість "слів", розділяючи їх один від одного пробілами. Кожне "слово" з командного рядка стає рядком-значенням, на який вказує черговий елемент параметра argv[i], де 0<i<argc. Тут потрібно зробити одне уточнення.

Як і в кожному масиві, в масиві argv[ ] індексація элементів починається з нуля, тобто завжди є елемент argv[0]. Цей елемент є покажчиком на повну назву запускаємої програми. Наприклад, якщо з командного рядка виконується звернення до програми EXAMPLE  з каталога CATALOG, розміщеного на диску С, то виклик в MS-DOS виглядає так:

С:\CATALOG\EXAMPLE.ЕХЕ

Значення argc в цьому випадку буде рівне 1, а рядок, який адресує покажчик argv[0], буде таким:

"С:\CATALOG\EXAMPLE.ЕХЕ"

Як ілюстрація сказаного приведемо програму, яка виводить на екран дисплея всю інформацію з командного рядка, розміщуючи кожне "слово" на новому рядку екрану.

#include  <stdio.h>

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

{

int   і ;

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

printf("\n  argv   [%d]   ->  %s", i, argv[i] ;

}

Нехай програма запускається з такого командного рядка:

С:\WP\test66   11  22   33

Результат виконання програми:

argv  [0]   -> С:\WP\test66.exe

argv  [1]   -> 11

argv  [2]   -> 22

argv  [3]   -> 33

В головній програмі main( ) дозволено використовувати і третій параметр char * envp[ ]. Його призначення - передати в программу всю інформацію про оточення, в якому виконується програма. Наступний приклад ілюструє можливості цього третього параметра основної функції main( ).

#include  <stdio.h>

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

{

int n;

printf("\nПрограмма '%s' "

         "\nЧисло параметрів при запуску: %d", argv[0], argc-l);

for (n=l; n<argc; n++)

printf("\n%d-й параметр: %s", n, argv[n]);

printf("\n\nСписок змінних оточення:");

for (n=0; envpt[n]; n++)

printf("\n%s", envp[n]);

}

Нехай програма "запущена" на виконання в MS-DOS під Windows 95 з такого командного рядка:

С:\WWP\TESTPROG\MAINENVP.EXE   qqq www

Результати виконання програми:

Програма   ' С: \WWP\TESTPROG\MAINENVP. ЕХЕ '

Число  параметрів  при  запуску:   2

1-й  параметр:   qqq

2-й параметр: www

Список змінних оточення:

ТМР=С: \WINDOWS\TEMP

PROMPT=$p$g

winbootdir=C: \WINDOWS

COMSPEC=C:\WINDOWS\COMMAND.COM

TEMP=c:\windows\temp

CLASSPATH=.;c:\cafe\java\lib\classes.zip

HOMEDRIVE=c:

HOMEPATH=\cafe\java

JAVA_HOME=c:\cafe\Java

windir=C: \WINDOWS

NWLANGUAGE=English

PATH=C:\CAFE\BIN; C:\CAFE\JAVA\BIN; C:\BC5\BIN;

C:\WINDOWS; C:\WINDOWS\COMMAND; C:\NC;

C:\ARC;С:\DOS;C:\VLM;C:\TC\BIN

CMDLINE=tC

Через масив покажчиків envp[] програмі доступний набір символьних рядків, створюючих оточення програми. Частіше за все кожний рядок містить таку інформацію:

ім'я_змінної = значення_змінної

Наприклад, в приведених результатах ім'я змінної ТМР пов'язано з ім'ям каталога для тимчасових даних. Змінивши значення змінної ТМР, можна "примусити" програму використовувати для зберігання тимчасових даних інший каталог. Для роботи з рядками оточення в програмах на мові Сі використовують функції getenv() і putenv().


 

А также другие работы, которые могут Вас заинтересовать

43339. Проектування фундаментів під 9-поверхову блок секцію на 36 квартир 530.5 KB
  Результати лабораторних визначень фізикомеханічних характеристик цього ґрунту наведені в табл. Результати лабораторних визначень фізикомеханічних характеристик ґрунту № 102 Таблиця 3 № ґрунту Фізикомеханічні характеристики ґрунту ρs г см3 ρ г см3 W WL WP E МПа φ град. Остаточна назва ґрунту: суглинок твердий Визначаємо розрахункові характеристики ґрунту питому вагу {м с2 прискорення вільного падіння} кут внутрішнього тертя питоме зчеплення для розрахунків за Ію і ІІю групами граничних станів. Розрахункове значення...
43340. Розробка веб-сайту електронної бібліотеки 394.5 KB
  Завданням даної курсової роботи є розробка веб-сайту електронної бібліотеки. Веб-сайт повинен надавати можливість користувачам виконувати навігацію по категоріям та завантажувати необхідні їм книги. Також необхідний пошук по імені автора, назві книги та по опису. Для наповнення бібліотеки та редагування її вмісту необхідно реалізувати адміністративну частину сайту
43341. РОЗРОБКА ПРОГРАМНОГО КОМПЛЕКСУ ПО ЗНАХОДЖЕННЮ НАЙКОРОТШИХ МАРШРУТІВ НА ДТМ 871 KB
  Транспортні задачі, у яких вершинами графа є пункти, а ребрами – дороги (автомобільні, залізні й ін.) і/або інші транспортні (наприклад, авіаційні) маршрути. Інший приклад – мережі постачання (енергопостачання, газопостачання, постачання товарами і т.д.), у яких вершинами є пункти виробництва й споживання, а ребрами – можливі маршрути переміщення (лінії електропередач, газопроводи, дороги і т.д.).
43342. ШЛЯХИ УДОСКОНАЛЕННЯ ФОРМ ТА СПОСОБІВ ДІЛОВОГО СПІЛКУВАННЯ НА ПІДПРИЄМСТВІ 185.5 KB
  Але водночас безпосереднє спілкування заміняється опосередкованим що здійснюється засобами масової інформації а це веде до зростання відчуженості між людьми зниження рівня їх комунікабельності контактності а також емоційності. Тому роль слова у міжособистісній та діловій взаємодії людей має особливе значення а у зв'язку з цим зростає актуальність проблеми підготовки майбутніх фахівців до спілкування в нових умовах. Маючи низький рівень культури ділового спілкування співрозмовники нерідко ставляться до інших як до об'єктів яких не...
43343. Розрахунок розгалуженого електричного кола постійного струму 353.5 KB
  Остання цифра номера відповідає номеру схеми кола рис. ЧАСТИНА І Розрахунок розгалуженого електричного кола постійного струму Зміст завдання Для заданого електричного кола рис. 1 виконати наступне: накреслити початкову а також спрощену схеми на спрощеній схемі відсутні індуктивні і ємнісні елементи які не впливають на розподіл струмів у вітках кола постійного струму; скласти систему рівнянь для розрахунку кола за методом рівнянь Кірхгофа; визначити невідомі струми і напруги на елементах кола використовуючи методи контурних струмів і...
43344. Облік статутного капіталу підприємства 1.74 MB
  Вона має постійний характер та відрізняється, по-перше, свободою у виборі напрямів та методів діяльності, самостійністю у прийнятті рішень, по-друге, відповідальністю за прийняття рішень та їх виконання; по-третє цей вид діяльності не виключає ризику, збитків, й банкрутств
43345. Інформаційна база даних служби продажу залізничних білетів 1.3 MB
  База даних — це впорядкований набір логічно взаємоповязаних даних, що використовується спільно, та призначений для задоволення інформаційних потреб користувачів. У технічному розумінні включно й система керування БД.
43346. Створення інформаційної бази даних служби продажу залізничних білетів 1.19 MB
  Курсова робота з дисципліни Організація баз даних та знань на тему: Створення інформаційної бази даних служби продажу залізничних білетів Курсова робота студента 3 курсу групи КН48 Нестеренка М. Проектування інформаційної бази даних Створення реляційної моделі бази даних Створення бази даних