aboutsummaryrefslogtreecommitdiff
path: root/doc/Manual/ru/BH_Args.pod
diff options
context:
space:
mode:
Diffstat (limited to 'doc/Manual/ru/BH_Args.pod')
-rw-r--r--doc/Manual/ru/BH_Args.pod165
1 files changed, 165 insertions, 0 deletions
diff --git a/doc/Manual/ru/BH_Args.pod b/doc/Manual/ru/BH_Args.pod
new file mode 100644
index 0000000..cf4ee3d
--- /dev/null
+++ b/doc/Manual/ru/BH_Args.pod
@@ -0,0 +1,165 @@
+=encoding UTF-8
+
+
+=head1 НАИМЕНОВАНИЕ
+
+BH_Args - обработка аргументов командной строки
+
+
+=head1 СИНТАКСИС
+
+ #include <BH/Args.h>
+
+ static BH_ArgsOption options[] =
+ {
+ {'h', "help", 0, "Display this help"},
+ {1000, "list", 0, "List files"},
+ {'i', "input", BH_ARGS_VALUE, "Input file"},
+ {'o', "output", BH_ARGS_VALUE | BH_ARGS_OPTIONAL, "Output file"},
+ {0, NULL, 0, NULL}
+ };
+
+ static int OptionsCallback(int key,
+ char *arg,
+ void *data)
+ {
+ switch (key)
+ {
+ case BH_ARGS_UNKNOWN:
+ /* Unknown options */
+ break;
+
+ case BH_ARGS_ARGUMENT:
+ /* Regular argument in arg */
+ break;
+
+ case 'h':
+ /* Named option without argument */
+ break;
+
+ case 1000:
+ /* Long-only option without argument */
+ break;
+
+ case 'i':
+ /* Option with argument in arg */
+ break;
+
+ case 'o':
+ /* Option with optional argument in arg */
+ break;
+ }
+
+ return BH_OK;
+ }
+
+ BH_ArgsParse(argc, argv, options, OptionsCallback, NULL);
+ BH_ArgsHelp(options, 0);
+
+ cc prog.c -o prog -lbh
+
+
+=head1 ОПИСАНИЕ
+
+Библиотека BH_Args предназначена для удобной обработки аргументов командной
+строки в программах. Она позволяет определить набор опций, которые могут быть
+указаны при запуске программы, и предоставляет механизмы для их анализа и
+обработки.
+
+Разбор аргументов происходит с учётом следующих правил:
+
+=over
+
+=item *
+
+Если указан аргумент "--", последующий разбор аргументов прекращается.
+
+=item *
+
+Если указан аргумент "-", он обрабатывается как есть.
+
+=item *
+
+Для значений длинных аргументов будет использоваться строка после знака равно
+или следующий аргумент ("--define=value" или "--define value").
+
+=item *
+
+Для значений коротких аргументов будет использоваться остаток строки после
+символа параметра или следующий аргумент ("-dvalue" или "-d value").
+
+=back
+
+
+=head1 API ВЫЗОВЫ
+
+
+=head2 BH_ArgsParse
+
+ int BH_ArgsParse(int argc,
+ char **argv,
+ BH_ArgsOption *options,
+ BH_ArgsCallback callback,
+ void *data);
+
+Разбирает аргументы I<options> командной строки (заданные в I<argc> и I<argv>) и
+вызывает указанный обработчик I<callback> (с пользовательскими данными I<data>).
+
+Параметр I<options> ссылается на нуль-терминированный массив.
+
+В случае успеха данная функция возвращает 0, в противном случае - код ошибки.
+
+
+=head2 BH_ArgsHelp
+
+ void BH_ArgsHelp(BH_ArgsOption *options,
+ int padding);
+
+Выводит в F<stdout> справочную информацию для аргументов I<options> (с указанным
+выравниванием I<padding>).
+
+В случае если параметр I<padding> равен 0, то будет использовано значение
+по умолчанию (30).
+
+
+=head1 СТРУКТУРЫ
+
+
+=head2 BH_ArgsOption
+
+ typedef struct BH_ArgsOption
+ {
+ int key;
+ const char *name;
+ int flags;
+ const char *description;
+ } BH_ArgsOption;
+
+Поле I<key> содержит идентификатор опции. В случае если идентификатор I<key>
+является печатным символом ASCII, то он будет использоваться в качестве
+короткого аргумента.
+
+Опциональное поле I<name> содержит строку, которая будет использоваться в
+качестве длинного аргумента.
+
+Поле I<flags> содержит флаги аргумента. Возможна комбинация из следующих флагов:
+
+=over
+
+=item B<BH_ARGS_VALUE>
+
+Аргумент принимает значение.
+
+=item B<BH_ARGS_OPTIONAL>
+
+Значение аргумента опционально.
+
+=back
+
+Поле I<description> содержит строку, которая будет использоваться при выводе
+справочной информации при помощи функции L</BH_ArgsHelp>.
+
+
+=head1 СМ. ТАКЖЕ
+
+L<BH>