Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы для подготовки к экзамену по ОП.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
298 Кб
Скачать
☆

Тема №11 Параметры командной строки

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

void main(int argc, char **argv) {

...

}

Первым аргументом argc является число переданных функции параметров. Второй аргумент – массив строк – собственно сами параметры. Так как параметры у функции могут быть любыми, то они передаются как строки, и уже сама программа должна их разбирать и приводить к нужному типу.

Первым аргументом (argv[0]) всегда является имя программы. При этом имя выводится в зависимости от того, откуда была запущена программа.

#include <conio.h>

#include <stdio.h>

void main(int argc, char **argv) {

printf("%s", argv[0]);

}

Сочетание клавиш Win+R вызывает окно "Выполнить". Наберите в нём cmd и вы откроете командную строку. Также можно найти cmd.exe поиском в меню Пуск. В юникс-подобных операционных системах можно вызвать программу "терминал".

Стандартная для всех операционных систем команда cd осуществляет переход к нужной папке. Существует два зарезервированных имени - . (точка) и .. (две точки). Точка - это имя текущей папки.

cd .

никуда не переходит

.. обращение к родительской папке

cd ..

переход в родительскую папку

Для перехода по нужному адресу пишется cd адрес. Например, нужно перейти на windows в папку C:\Windows\System32

cd C:\Windows\System32

В линуксе если нужно перейти в папку /var/mysql

cd /var/mysql

Если путь содержит пробелы, то он пишется в двойных кавычках

cd "D:\Docuents and Settings\Prolog"

Терминал имеет следующие полезные особенности: если нажать стрелку вверх, по появится предыдущая выполненная команда. Если нажать tab, то терминал попытается дополнить строку до известной ему команды, или дополнить путь, перебирая все папки и файлы в текущей папке.

Наберите cd C:\

нажимайте tab и смотрите, что происходит.

Ещё одна важная команда dir на windows и ls на linux, выводит на консоль содержимое текущей папки (той папки, в которой вы находитесь в данный момент).

Наша программа вернула своё полное имя. Перейдя в папку, где располагается наша программа можно посмотрить её содержимое.

После того, как мы перешли в нашу папку, можно выполнить нашу программу. Для этого нужно набрать её имя.

Теперь изменим программу и сделаем так, чтобы она выводила все аргументы, которые ей переданы.

#include <conio.h>

#include <stdio.h>

void main(int argc, char **argv) {

int i;

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

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

}

}

Давайте теперь напишем программу, которая получает два аргумента числа и выводит их сумму

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

void main(int argc, char **argv) {

int a, b;

if (argc != 3) {

printf("Error: found %d arguments. Needs exactly 2", argc-1);

exit(1);

}

a = atoi(argv[1]);

b = atoi(argv[2]);

printf("%d", a + b);

}

Таким образом работает большинство программ. Кликая на ярлык, вы вызываете программу, на которую он ссылается. Большинство программ также принимают различные аргументы. Например, можно вызвать браузер firefox из командной строки и передать аргументы

firefox.exe "www.mozilla.org" "kai.ru" и он сразу же откроет в двух вкладках сайты по указанным адресам.

Многие стандартные команды также имеют параметры. В windows принято, что они начинаются с прямого слеша, в юниксе с минуса или двух минусов. Например

dir /AD

выводит только папки, а в терминале linux

ls -l выводит все файлы и папки с указанием атрибутов

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