Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_C-16.doc
Скачиваний:
2
Добавлен:
11.08.2019
Размер:
74.75 Кб
Скачать

Рубанчик В.Б.,

Михайличенко В.Н.

Лабораторная работа "Передача параметров в программу из командной строки. Код завершения программы"

5/5

Лабораторная работа

Тема: Передача параметров в программу из командной строки. Код завершения программы

Цель работы: Освоить приемы создания программ, управляемых параметрами командной строки

Отчет: Тексты программ с необходимыми комментариями

Аргументы функции main

Существует много служебных утилит и программ, при запуске которых в командной строке вместе с именем вызываемой программы требуется (или можно) задавать значения параметров. Эти параметры определяют режим использования программы или несут дополнительную информацию, например, имя файла, который должен быть обработан программой. Применение параметров командной строки позволяет избежать начального диалога с пользователем, который может требоваться для уточнения режима использования программы, и при этом сохранить универсальность программ. Кроме того, они удобны при организации пакетной обработки (в .bat-файлах). Например,

format b: /u

Здесь параметр b: определяет форматируемое дисковое устройство, а опция /u — режим выполнения операции.

Обычно программы, использующие параметры строки, предосталяют справочную информацию. Например, так поступает архиватор 7zip при запуске без параметров:

C:\Program Files\7-Zip>7z.exe

Для примера справочная информация, выводимая в этом случае, приведена в приложении в конце лабораторной работы.

Каким образом программа читает значения параметров из командной строки? Для этого используются аргументы функции main, которая является точкой входа в программу, и поэтому присутствует всегда.

Стандартом языка Си main определяется как функция, имеющая переменное число аргументов. Это означает, что при вызове функции ей может быть передано разное число аргументов. Другой пример функции с переменным число аргументов — printf, где есть только один обязательный аргумент, а остальных может быть произвольное количество.

Операционная система может передать функции main до трех аргументов, причем первый аргумент — это целое число, второй и третий — указатели на массивы символьных строк. Прототип функции main в самом общем виде выглядит так:

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

или

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

Функция может

а) возвращать целое значение, воспринимаемое операционной системой как код завершения программы (это обычно требуют современные компиляторы),

или

б) не возвращать ничего (void, как это допускается компилятором BC++).

Определение количества параметров командной строки

К параметрам командной строки непосредственное отношение имеют первые два аргумента функции main.

В первый формальный параметр, который обычно обозначают как argc (argument counter), операционная система помещает количество параметров в командной строке при вызове функции, причем в их число включено имя программы (!). Так, при выполнении команды

C:> test.exe /a 1

значение счетчика аргументов argc будет равно трем — в командной строке три элемента: test.exe, /a и 1.

ЗАДАНИЕ 1 (определение количества параметров, переданных программе)

Программа выводит на экран количество параметров, переданных ей через командную строку.

#include <stdio.h>

void main(int argc) {

printf("%d", argc);

}

1. Добавить в программу строки, необходимые для предварительной очистки экрана и функцию для задержки экрана с результатами.

2. При отладке программы параметры командной строки (без указания имени выполняемой программы, которое будет подставлено автоматически) можно указать, выбрав пункт меню Run|Arguments... . Параметры друг от друга отделяются пробелами.

3. Проверив работу программы в отладочном режиме, выйти из среды разработки и запустить полученный exe-файл из командной строки, задав для проверки несколько параметров.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]