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

похожие страницы

  1. Сдохла оболочка explorer у windows и про вирусы и про Каспера
  2. Обработка Excel файлов в командной строке
  3. JQuery примеры использования
  4. Интересные ключики grep
  5. Автоматическое сохранение всех баз данных mysql

#1:

getopt.c:8: error: `optarg' undeclared (first use in this function)

понимаю, что "пустяки", но все же нужно смотреть, что публикуешь.

ответить  2010-01-12 22:42:32 

#2:  Басманов:

re: но все же нужно смотреть, что публикуешь.

спасибо, исправил

ответить  2010-01-12 22:57:09