C, Как указать optstring в функции getopt? - программирование
Подтвердить что ты не робот

C, Как указать optstring в функции getopt?

Я не уверен, как правильно использовать optstring в функции getopt в C.

Как форматировать эту строку? Я видел примеры, где буквы рядом друг с другом, иногда разделенные точкой с запятой, иногда двумя точками с запятой.

Что это значит?

4b9b3361

Ответ 1

Это просто строка, и каждый символ этой строки представляет опцию. Если для этой опции требуется аргумент, вы должны следовать за символом опции :.

Например, "cdf:g" принимает опции c, d, f и g; f требует дополнительного аргумента.

Опция в командной строке выглядит как -option, поэтому вы можете использовать опции -c, -d, -f argument и -g.

Ответ 2

Маска страницы getopt(3) делает это довольно ясным:

  • сама строка используется для указания юридических параметров, которые могут отображаться в командной строке,
  • если за опцией следует :, тогда этот параметр имеет требуемый параметр - не указывая, что это приведет к сбою функции,
  • если за опцией следует ::, то этот параметр имеет необязательный параметр.

Параметры - это однобуквенные идентификаторы. Например, указание строки типа aB:cD:: в качестве optstring будет означать, что ваша программа принимает параметры a, B с обязательным параметром c и D с необязательным параметром.

Ответ 3

Если для двоеточия : следует char или строка означает, что эта опция должна требовать аргумент и если нет двоеточия, нет аргументов

для более подробной информации man 3 getopt или посетите ссылку или manpage