如何在getopt函数中指定optstring?

问题描述 投票:0回答:3

我不确定如何在 C 的

optstring
函数中正确使用
getopt

应该如何格式化该字符串?我看到了字母彼此相邻的示例,有时用分号分隔,有时用两个分号分隔。

什么意思?

c getopt
3个回答
39
投票

就是一个字符串,这个字符串的每个字符代表一个选项。如果此选项需要参数,则必须在选项字符后加上

:
.

例如,

"cdf:g"
接受选项
c
d
f
g
f
需要一个额外的参数。

命令行中的选项看起来像

-option
,因此您可以使用选项
-c
-d
-f argument
-g


13
投票

getopt(3)
联机帮助页非常清楚:

  • 字符串本身用于指定可以出现在命令行上的合法选项,
  • 如果选项后跟一个
    :
    ,那么这个选项有一个必需的参数——不指定它会导致函数失败,
  • 如果选项后跟一个
    ::
    ,那么该选项有一个可选参数。

选项是一个字母的标识符。例如,将像

aB:cD::
这样的字符串指定为
optstring
将意味着您的程序采用带有必需参数的选项
a
B
c
和带有可选参数的
D


3
投票

如果冒号

:
后跟一个字符或字符串意味着这个选项必须需要参数 如果没有冒号意味着没有参数

有关更多详细信息,请执行

man 3 getopt
或访问 linkmanpage

© www.soinside.com 2019 - 2024. All rights reserved.