25

我不确定如何在 Coptstring中的getopt函数中正确使用。

该字符串应该如何格式化?我看到了一些例子,其中字母彼此相邻,有时用分号隔开,有时用两个分号隔开。

这是什么意思?

4

3 回答 3

38

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

例如,"cdf:g"接受选项cdfg; f需要一个额外的参数。

命令行中的选项看起来像,因此-option您可以使用选项-c-d和。-f argument-g

于 2012-11-06T13:09:29.200 回答
13

getopt(3)手册页说得很清楚:

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

选项是一个字母的标识符。例如,将字符串指定aB:cD::optstring将意味着您的程序采用 options aB带有必需参数,cD带有可选参数。

于 2012-11-06T13:12:47.037 回答
2

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

有关更多详细信息,man 3 getopt 请访问链接手册页

于 2012-11-06T13:12:28.623 回答