C,如何在getopt函数中指定optstring?

时间:2012-11-06 13:07:23

标签: c getopt

我不确定如何在C语言的optstring函数中正确使用getopt

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

这是什么意思?

3 个答案:

答案 0 :(得分:27)

它只是一个字符串,此字符串的每个字符代表一个选项。如果此选项需要参数,则必须遵循:的选项字符。

例如,"cdf:g"接受选项c; d; f; gf需要额外的参数。 命令行中的选项看起来像-option,因此您可以使用选项-c-d-f argument-g

答案 1 :(得分:11)

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

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

选项是单字母标识符。例如,将aB:cD::之类的字符串指定为optstring意味着您的程序会将选项aB带有必需参数c和{ {1}}带有可选参数。

答案 2 :(得分:2)

如果冒号:后跟char或字符串,则表示此选项必须包含参数 如果没有冒号就意味着没有参数

了解更多详情man 3 getopt 或访问linkmanpage