Троан Эрик В.
Шрифт:
Новое содержимое
Первый параметр,
184
Распространенной ошибкой является определение массива
POPT_CONTEXT_KEEP_FIRST | Как правило, popt игнорирует значение в argv[0] , которое обычно представляет имя выполняемой программы, а не аргумент командной строки. Если определить этот флаг, то popt будет обрабатывать argv[0] как параметр. |
POPT_CONTEXT_POSIXMEHADER | Стандарт POSIX гласит, что все параметры должны стоять перед дополнительными параметрами командной строки. Например, в соответствии с POSIX, rm -f file1 file2 приведет к удалению файлов file1 и file2 , тогда как rm file1 file2 -f приведет к обычному удалению трех файлов: file1 , file2 и – f . В большинстве Linux-программы это частное условие игнорируется, поэтому popt не придерживается этого правила по умолчанию. Этот флаг сообщает библиотеке popt о необходимости анализировать синтаксис параметров в соответствии с этим условием. |
Помимо всего прочего,
После завершения обработки аргумента процесс должен освободить структуру
Ниже представлены прототипы функций
26.2.2. Синтаксический анализ командной строки
После того как приложение создаст
Принимая содержимое в качестве своего единственного аргумента, эта функция анализирует синтаксис следующего обнаруженного аргумента командной строки. После того как следующий аргумент будет обнаружен в таблице параметров, функция заполняет объект, на который указывает указатель
Функция
Если все параметры командной строки обрабатываются через указатели
Тем не менее, для многих приложений требуется более сложный синтаксический анализ командной строки, нежели этот, и применяется показанная ниже структура.
Во время обработки возвращенных параметров приложению необходимо знать значение каждого аргумента, который был определен после параметра. Это можно сделать двумя способами. Один из них заключается в том, чтобы
Эта функция возвращает аргумент, заданный для последнего параметра, возвращенного функцией
26.2.3. Остаточные аргументы
Многие приложения принимают произвольное количество аргументов командной строки, например, список имен файлов. Когда