Практически в каждой программе на С/С++ требуется разбирать параметрые переданные через argc/argv из коммандной строки при запуске программы, проще всего для этого использовать функцию getopt из библиотеки unistd.h
Вот небольшой пример использования, 3 аргументом передётся список имён параметров ":o:i:t:" :
#include < unistd.h>
#include < stdlib.h>
#include < stdio.h>
int main(int argc, char *argv[]){
int par=0;
printf("%s ",argv[0]);
while( (par = getopt(argc, argv, ":o:i:t:")) != -1){
printf("-%c %s ",par,optarg);
};
printf("\n");
return 0;
}
А вот так можно проверить код:
gcc getopt.c && ./a.out -o12 -itest1.py -tDesktop
./a.out -o 12 -i test1.py -t Desktop
$
Следует отметить, что для разбора длинных параметров (типа --help, --prefix=~/ .. etc) следует использовать getopt_long из той же библиотеки. Документацию и дополнительные примеры можно найти тут
http://www.gnu.org/software/libtool/manual/libc/Getopt.html
А так же, что специально для синтаксического анализа параметров командной строки есть библиотека popt.h
Комментариев 0