на главную обо мне контакты катра сайта
Блог Создание и продвижение сайтов
 

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

текст недоступен

другие страницы раздела

комментарии (2)

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

Valid XHTML 1.0 Strict Читать в Яндекс.Ленте Вятка-на-Сети: Каталог ресурсов