Использование аргументов командной строки
Программы могут принимать аргументы. Ниже приведен пример программы, которая печатает список аргументов,
которые были переданы ей в командной строке.
Пример ее работы
bash$ ./argv alpha beta gamma last
Argument 0: ./argv
Argument 1: alpha
Argument 2: beta
Argument 3: gamma
Argument 4: last
/* Program: argv.c
Build me with
gcc -o argv argv.c
*/
#include <stdio.h>
int
main (int argc, char * argv[])
{
int i;
for ( i = 0 ; i < argc; i++ )
{
printf ("Argument %d: %s\n", i, argv[i]);
}
if ( argc == 1 )
{
printf ("Command line has no additional arguments\n");
}
return 0;
}
Например стандартная программа 'ls' в Linux в качестве аргумента
принимает имена директорий, содержимое которых нужно вывести в стандартный поток вывода. Команда
выведет содержимое директории '/home/user'.
Команда 'ls' имеет множество опций, которые можно передавать в командной строке. о них вы можете узнать,
запустив команду 'ls' с опцией '-h':
Вообще, программа может получать данные из нескольких источников. Наиболее важные источники это
- аргументы командной строки
- стандартный поток ввода
- файлы
- средства взаимодействия процессов (signals, sockets, messages, ...)
Научимся использовать первый из них.
Задачи для самостоятельного решения
- Напишите программу, которая интерпретирует свои аргументы как целые числа и выводит на стандартный поток вывода их сумму
- Напишите программу, которая принимает аргумент имя файла, и выводит содержимое этого файла
- в текстовом виде, обозначая не ASCII символы знаками вопроса (если дана опция
-text
)
- в шестнадцатиричном виде (если дана опция
-hex
)
- как есть (по умолчанию)
--
ArtemVoroztsov - 24 Mar 2005