科技猎人 发表于 2020-2-23 18:48:11

好用的参数解析工具---cmdParse

cmdParse是一个替代getopt/getopt_long的工具函数,用于简洁高效的解析命令行参数。

作者的工作是开发驱动程序,其中很重要的一部分内容就是编写测试工具,为了使得这些工具命令用起来灵活方便,就需要设计各种命令参数。开始也是用的getopt/getopt_long函数来解析的,用了一段时间发现当参数比较多比较复杂时这两个函数用起来很繁琐低效,于是就萌生了自己写一个解析工具的想法。

命令参数的目的大部分是用来获取一个新的参数值,解析这个参数值的方法无非就是常用的那几种,而getopt需要用户自己写这些重复无趣的代码来完成。cmdParse的一个很大的优点就是直接通过指定数据类型和目标地址就可以完成这些工作,简洁高效。对于一些需要特殊处理的参数或动作执行,则可以通过注册回调函数来实现。另外一个好处就是编写完选项列表的时候其实也就完成了帮助命令的设计,使用通用选项-help就会输出命令的选项列表信息。

特性

[*]参数值可直接自动解析获取。
[*]可注册回调函数来完成需要特殊处理的参数或动作执行。
[*]具备通用的-help选项,统一输出命令选项列表信息。
[*]整个模块没有全局或静态数据,完全可重入。
[*]和操作系统无关,在裸机平台上也可使用。
[*]参数解析本身可调试,命令行末尾加“!”,可以输出参数解析信息。
[*]选项名不区分短选项或长从选项,可以是任意字符串。
[*]可以设置选项强制有效,即便命令行中没有输入该选项。
[*]按照选项列表的顺序执行选项。



源码及使用说明请稍等或另行百度。




diandianer 发表于 2020-2-23 19:17:13

学习一下

LiuCH 发表于 2020-2-23 19:51:42

记号一下,留待参考。

dukelec 发表于 2020-2-23 19:57:45

本帖最后由 dukelec 于 2020-2-23 20:04 编辑

我自己寫過一個,特點是非常簡單易用,
見文章尾部 CDARGS 介紹,支持 C 和 Python:
http://blog.dukelec.com/cdipc-zh

C 版本代碼在以下連接,cdargs.c 和 .h 文件:
https://github.com/dukelec/cdipc/tree/master/cdipc/utils

Python 版本:
https://github.com/dukelec/cdipc/blob/master/bindings/python/cd_args.py

科技猎人 发表于 2020-2-23 20:15:24

dukelec 发表于 2020-2-23 19:57
我自己寫過一個,特點是非常簡單易用,
見文章尾部 CDARGS 介紹,支持 C 和 Python:
http://blog.dukelec. ...

兄台,冒昧的问一下,你为啥用繁体字?是台湾或香港的朋友吗?

科技猎人 发表于 2020-2-23 20:24:05

dukelec 发表于 2020-2-23 19:57
我自己寫過一個,特點是非常簡單易用,
見文章尾部 CDARGS 介紹,支持 C 和 Python:
http://blog.dukelec. ...

大概看了下,基于链表实现的,实现不算复杂,功能也比得上getopt,赞一个。

Pupil 发表于 2020-2-23 21:31:02

都是大牛,学习一下

kinsno 发表于 2020-2-24 00:01:51

一开始听着很炫,后来定睛一看,是代替getopt,好吧。。
我get不到这个点啊。。
真的没有兴趣。。

king_cd_126 发表于 2020-2-24 00:05:57

收藏了,学习下

ccje 发表于 2020-2-24 10:00:20

收藏了,学习下

科技猎人 发表于 2020-2-24 11:30:33

kinsno 发表于 2020-2-24 00:01
一开始听着很炫,后来定睛一看,是代替getopt,好吧。。
我get不到这个点啊。。
真的没有兴趣。。


就好比功能机是手机,智能机也是手机,都是手机但更好用更方便。但终究还是个手机,确实没有汽车的功能啊。

科技猎人 发表于 2020-2-24 11:32:32

可以看一下例程源码,看看实现同样功能用getopt是否会繁琐一些。
cmdParseExample.c源码
https://www.amobbs.com/thread-5727947-1-1.html
(出处: amoBBS 阿莫电子论坛)

dbwu8280 发表于 2020-2-24 12:33:16

大牛,感谢!

huangqi412 发表于 2020-2-27 21:35:19

提取参数?

kyq_linux 发表于 2020-3-4 22:05:55

留个脚印!

spring152 发表于 2020-3-5 06:59:42

留个脚印!

Excellence 发表于 2020-3-5 07:39:12

世界上最好用的参数解析工具---cmdParse

https://blog.csdn.net/ScilogyHunter/article/details/104424140?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
页: [1]
查看完整版本: 好用的参数解析工具---cmdParse