Cのoptstring
関数でgetopt
を正しく使用する方法がわかりません。
その文字列はどのようにフォーマットする必要がありますか?文字が隣り合っていて、セミコロンで区切られている場合もあれば、2つのセミコロンで区切られている場合もあります。
どういう意味ですか?
これは単なる文字列であり、この文字列の各文字はオプションを表します。このオプションに引数が必要な場合は、オプション文字の後に:
を付ける必要があります。
たとえば、"cdf:g"
は、オプションc
、d
、f
、およびg
を受け入れます。 f
には追加の引数が必要です。
コマンドラインのオプションは-option
のように見えるため、オプション-c
、-d
、-f argument
、および-g
を使用できます。
getopt(3)
のマンページはそれをかなり明確にします:
:
が続く場合、そのオプションには必須パラメーターがあります。指定しないと、関数が失敗します。::
が続く場合、そのオプションにはオプションのパラメーターがあります。オプションは1文字の識別子です。たとえば、aB:cD::
のような文字列をoptstring
として指定すると、プログラムはオプションa
、B
を必須パラメーター、c
、およびD
をオプションパラメーターとして使用することになります。