Тут можно читать онлайн книгу Роббинс Арнольд - Linux программирование в примерах - бесплатно полную версию (целиком). Жанр книги: Программирование. Вы можете прочесть полную версию (весь текст) онлайн без регистрации и смс на сайте Lib-King.Ru (Либ-Кинг) или прочитать краткое содержание, аннотацию (предисловие), описание и ознакомиться с отзывами (комментариями) о произведении.
Linux программирование в примерах - описание и краткое содержание, автор Роббинс Арнольд, читать бесплатно онлайн на сайте электронной библиотеки Lib-King.Ru.
В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи и группы, вопросы интернационализации и локализации, сортировка, поиск и многие другие. Много внимания уделено средствам отладки, доступным под GNU Linux. Все темы иллюстрируются примерами кода, взятого из V7 UNIX и GNU. Эта книга может быть полезна любому, кто интересуется программированием под Linux.
Linux программирование в примерах - читать книгу онлайн бесплатно, автор Роббинс Арнольд
Для использования
getopt()while-1optarg-а-bint ос; /* символ опции */char *b_opt_arg;while ((ос = getopt(argc, argv, "ab:")) != -1) { switch (oc) { case 'a': /* обработка -а, установить соответствующий флаг */ break; case 'b': /* обработка -b, получить значение аргумента из optarg */ b_opt_arg = optarg; break; case ':': ... /* обработка ошибок, см. текст */ case '?': default: ... /* обработка ошибок, см. текст */ }}В ходе работы
getopt()char *optargАргумент для опции, если она принимает аргумент.
int optindТекущий индекс в
argvloopargv[optind]argv[argc-1]argv [argc] ==NULLint opterrКогда эта переменная не равна нулю (значение по умолчанию),
getopt()int optoptКогда находится недействительный символ опции,
getopt()?:optoptЛюди есть люди, программы неизбежно будут иногда вызываться неправильно либо с недействительной опцией, либо с отсутствующим аргументом опции. Обычно в таких случаях
getopt()?Во-первых, записав 0 в
opterrgetopt()getopt()Во-вторых, если первый символ в
optstringgetopt()Неверная опция
getopt()?optoptОтсутствует аргумент опции
getopt():optstringgetopt()?Таким образом, помещение в качестве первого символа
optstringgetopt()int ос; /* символ опции */char *b_opt_arg;while ((ос = getopt(argc, argv, ":ab:")) != -1) { switch (oc) { case 'a': /* обработка -a, установка соответствующего флага */ break; case 'b': /* обработка -b, получение значения аргумента из optarg */ b_opt_arg = optarg; break; case ':': /* отсутствует аргумент опции */ fprintf(stderr, "%s: option '-%c' requires an argument\n", argv[0], optopt); break; case '?': default: /* недействительная опция */ fprintf(stderr, "%s: option '-%c' is invalid: ignored\n", argv[0], optopt); break; }}Замечание о соглашениях по именованию флагов или опций: в большом количестве кода для Unix используются имена в виде
xflgnflgechoxflagno_newline-n2.3.2. GNU
getopt()Стандартная функция
getopt()getopt()argvargv[optind]argv[argc-1]--