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

bLA*_*LAZ 21 c getopt

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

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

这是什么意思?

md5*_*md5 29

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

例如,"cdf:g"接受选项c; d; f; g,并f需要一个额外的论点.在命令行选项样子-option,所以你可以使用的选项-c,-d,-f argument-g.

  • 当选项有一个参数时,该值在(全局)变量`optarg`中找到,该变量在标题中声明[`getopt()`](http://pubs.opengroup.org/onlinepubs/9699919799/functions/ getopt.html)被声明(`<unistd.h>`).两个冒号是一个扩展,表示以下参数是可选的. (3认同)

Dan*_*zar 11

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

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

选项是单字母标识符.例如,指定如字符串aB:cD::作为optstring将意味着你的程序需要的选项a,B用所需的参数,c以及D一个可选的参数.