没有'-'的第一个参数必须是必要的
First argument that is without '-' has to be necessary
我正在编写接受命令行参数的程序,但第一个参数是必需的,并且没有连字符(“-”)。应用程序的执行必须是:
./program <server> [-d] [-n]
我尝试将 argv[1]
(在本例中为 server
)设置为服务器,但当服务器不知何故被遗忘时会出现问题,然后它将选项保存到服务器中。我该如何处理这个问题,或者当需要第一个不带连字符的参数时,我的 optstring
应该是什么样子?
如果您的参数前面没有“-”,则 getopt 将无法识别它。
你应该自己处理第一个参数,像这样:
if (!(argc >= 2 && argv[1][0] != '-'))
errx(1, "Usage: ./program <server> [-d] [-n]");
然后您可以使用 getopt,因为它会独立于其他值搜索以“-”开头的选项。
如果你想处理 -d
和 -n
没有任何价值的选项,你的 optstring 应该看起来像 "dn"
.
我正在编写接受命令行参数的程序,但第一个参数是必需的,并且没有连字符(“-”)。应用程序的执行必须是:
./program <server> [-d] [-n]
我尝试将 argv[1]
(在本例中为 server
)设置为服务器,但当服务器不知何故被遗忘时会出现问题,然后它将选项保存到服务器中。我该如何处理这个问题,或者当需要第一个不带连字符的参数时,我的 optstring
应该是什么样子?
如果您的参数前面没有“-”,则 getopt 将无法识别它。 你应该自己处理第一个参数,像这样:
if (!(argc >= 2 && argv[1][0] != '-'))
errx(1, "Usage: ./program <server> [-d] [-n]");
然后您可以使用 getopt,因为它会独立于其他值搜索以“-”开头的选项。
如果你想处理 -d
和 -n
没有任何价值的选项,你的 optstring 应该看起来像 "dn"
.