C - как разрешить нераспознанные опции в Argp или Getopt? - PullRequest
0 голосов
/ 02 мая 2018

Я пишу файловую систему FUSE, которая использует некоторые аргументы. Я хотел бы передать все нераспознанные параметры в FUSE (потому что он имеет свои собственные параметры). Могу ли я сделать это, используя argp или getopt? Пока оба выдают ошибку «Неизвестная опция».

1 Ответ

0 голосов
/ 02 мая 2018

Argp

С раздел документации "Флаги Аргп" :

ARGP_NO_ERRS

Не печатать сообщения об ошибках для неизвестных опций в stderr ; если это установлен флаг, ARGP_PARSE_ARGV0 игнорируется, так как argv[0] используется в качестве Название программы в сообщениях об ошибках. Этот флаг подразумевает ARGP_NO_EXIT. Это основано на предположении, что тихий выход из ошибок плох поведение.

Getopt

Для getopt (а также getopt_long и getopt_long_only) вы просто устанавливаете глобальную переменную opterr в 0 перед вызовом функции. В качестве альтернативы, вы можете использовать короткую строку параметров с начальным символом :, как в ":o:v", для обработки -o output-file и -v (: будет возвращено, если в -o отсутствует аргумент, и ?, если найден любой параметр, который не существует в строке параметров).

...