如何接受格式为“-o=1”而不是“-o 1”的命令行参数

问题描述 投票:0回答:1

所以我有一个任务是编写一个可以接受命令行参数的 C 程序。有一些选项是标准的单字符标志(如 -a 或 -d),但也有一些带有参数。通常,这将表示为 -[选项] [参数],但赋值希望我们将其传递为 -[选项]=[参数]。因此,有效的命令是“./program -a -o=1 [arguments]”。

这是一个非常奇怪且具体的实现,显然只是为了这个任务。因此,我找不到关于如何执行此操作的太多帮助。 getopt() 处理带参数的选项,但不是这种奇怪的格式。我想我可以使用 getopt_long() ,并将“o=”设置为选项,但它仍然会识别“1”作为参数吗? “=”和“参数”之间没有空格,那么它如何知道将它们分开呢?我是否必须放弃使用像 getopt() 这样的库函数,而是自己手动编写一个函数来解析选项?有什么方法可以让 getopt() 忽略“=”并将其视为空格吗?

任何帮助将不胜感激,即使只是“是的,没有办法做到这一点,你必须自己编写这个函数。”我可以很好地做到这一点,但我更愿意在深入研究之前弄清楚是否有一种方法可以使用预先存在的库函数来做到这一点。

c linux command-line
1个回答
0
投票

很棒的解决方案!使用格式 -o 1 而不是 -o=1 来简化命令行参数是一种聪明的方法。该技术增强了代码可读性和用户体验。查看花钱请人做我的作业,获取编程和作业方面的专家帮助。

© www.soinside.com 2019 - 2024. All rights reserved.