官网文档为:
http://library.gnome.org/devel/glib/stable/glib-Commandline-option-parser.html
简单来说,就是定义GOptionEntry结构,这个结构里面包含了命令项名字、类型以及简单介绍
然后创建GOptionContext,把定义的GOptionEntry结构放到GOptionContext中,调用g_option_context_parse就可以将命令选项都解出来
默认情况下,-h和--help可以查看程序的帮助,这个帮助信息是使用的GOptionEntry中定义的信息,还有一些辅助函数用来添加一些其它信息,或对这些信息的格式进行设置。
下面是一个简单的示例:
GOptionEntry的结构定义为:
编译之后,可以这样执行程序
./a.out -r 10 -b -s test
-b后面不能跟参数,因为这个参数类型为:G_OPTION_ARG_NONE。存储它的变量是一个bool型的值,当有这个参数的值,这个bool值是TRUE,否则是FALSE。
这样当执行完g_option_context_parse函数之后,就会发现repeats、beep、string里面都有值了。这儿要注意的是,string这个参数,在使用完了,需要自己来释放,否则的话就会有内存泄露。
下面这个网址里面是一些不错的示例代码,比较详细的说明了这块的用法
https://dev.mobileread.com/svn/iliados/upstream/glib-2.6.6/tests/option-test.c
原来在glib的源代码里面就有详细用法
glib-2.26.0/glib/tests/option-context.c
https://dev.mobileread.com/svn/iliados/upstream/glib-2.6.6/tests/ 这个下面的一些glib的用法,是2.6.6版本的glib源码附带的