UNIX используется чаще всего как операционная система для серверов. Большинство утилит не имеет графического (или псевдографического) интерфейса, вызывается с передачей параметров в командной строке. О том как принять эти параметры в своей программе на C++ (GCC) расскажу и покажу далее в статье.
Возьмем люто любимый всеми программистами мира пример программы «Hello, World!» и дополним его чтением внешних параметров.
1 2 3 4 5 6 7 8 9 10 |
//-- Hello world C++: hello-params.cpp #include <stdio.h> using namespace std; int main(int argc, char** argv) { printf("Hello, world!\nParams count - %i.\n", argc); for (int i=0; i < argc; i ++) printf("Param %i = %s\n", i, argv[i]); return 0; } |
На что обращаем внимание:
- Основная функция программы получает два входных параметра — argc — кол-во входных параметров командной строки при вызове программы, argv — массив строк параметров.
- В массиве argv помимо передаваемых параметров, содержится строка с названием исполняемого файла — элемент массива под индексом 0.
Создаём исполняемый файл и запускаем.
1 2 |
gcc -o hello-params hello-params.cpp ./hello-params param1 param2 |
Результат работы программы:
Мы передали всего два параметра, но, как вы видите, счетчик показывает на 1 больше. Нумерация начинается с нуля, а элемент массива argv[0] содержит строку с названием исполняемого файла, как мы задали его в командной строке.