Интерпретация командной строки - C (СИ)
Формулировка задачи:
Добрый день всем. Дали задание
Написать программу обработки командной строки вызова программы, которая принимает опцию -a без аргумента и опцию –b с аргументом
Очень прошу посодействовать примерами или источником литературы где можно поучить. Только если есть возможность литературу более доступную для самых начинающих Всем заранее большое спасибо.Решение задачи: «Интерпретация командной строки»
textual
Листинг программы
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]){
int rez=0;
while ( (rez = getopt(argc,argv,"ab:")) != -1){
switch (rez){
case 'a': printf("found argument \"a\".\n"); break;
case 'b': printf("found argument \"b = %s\".\n",optarg); break;
case '?': printf("Error found !\n");break;
}
}
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с командной строкой и для работы с памятью.
- Объявляем функцию main, которая принимает два аргумента: int argc и char *argv[].
- Создаем переменную rez, которая будет хранить результат работы функции getopt.
- Запускаем цикл while, который будет выполняться до тех пор, пока функция getopt не вернет -1.
- Внутри цикла применяем функцию getopt к переменным argc и argv с передачей двух аргументов:
ab:в качестве возможных аргументов командной строки. - Полученный результат сохраняем в переменной rez.
- С помощью оператора switch проверяем значение переменной rez.
- В случае 'a' выводим сообщение
found argument \a``. - В случае 'b' выводим сообщение
found argument \b = %s``, используя значение optarg. - В случае '?' выводим сообщение
Error found !. - После выполнения цикла while завершаем работу программы.