C/C++: Разбор параметров командной строки - unistd.h :: getopt

Практически в каждой программе на С/С++ требуется разбирать параметрые переданные через 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
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут