1.安装glib
//安装依赖库
sudo apt-get install libffi-dev -y//安装glib
# sudo apt-get install libglib2.0-dev -y//64位ubuntu安装32位glib2.0, 仅作参考
# sudo apt-get install libglib2.0-dev:i3862.test.c
#include <glib.h>
#include <locale.h>
#define ERR_MSG_V(msg, ...) \g_print("** ERROR: <%s:%d>: " msg "\n", __func__, __LINE__, ##__VA_ARGS__)static  gint repeats = 2;
static  gint max_size = 8;
static  gboolean verbose = FALSE;
static  gboolean beep = FALSE;
static  gboolean op_rand = FALSE;
static  gchar arg_data[32] = { "arg data" };static  GOptionEntry entries[] =
{{"long name" ,  's' /*short-name*/ , 0 /*flags*/ , G_OPTION_ARG_STRING /*arg*/ ,arg_data, "description" ,  "arg_description" },{"repeats" ,  'r' , 0, G_OPTION_ARG_INT, &repeats, "Average over N repetitions" ,  "N" },{"max-size" ,  'm' , 0, G_OPTION_ARG_INT, &max_size, "Test up to 2^M items" ,  "M" },{"verbose" ,  'v' , 0, G_OPTION_ARG_NONE, &verbose, "Be verbose" , NULL},{"beep" ,  'b' , 0, G_OPTION_ARG_NONE, &beep, "Beep when done" , NULL},{"rand" , 0, 0, G_OPTION_ARG_NONE, &op_rand, "Randomize the data" , NULL},{NULL}
};int main (int  argc,  char  *argv[])
{GError *error = NULL;GOptionContext *context = NULL;GOptionGroup *group = NULL;// 创建一个新的选项上下文context = g_option_context_new("- test tree model performance" );
#if 1// 如果主要组不存在则创建主要组,向组添加entries并设置转换域g_option_context_add_main_entries(context, entries, NULL);//添加要在选项列表之前的--help输出中显示的字符串。 这通常是程序功能的摘要g_option_context_set_summary(context, "This is a glib demo" );
#elsegroup = g_option_group_new ("abc", NULL, NULL, NULL, NULL);g_option_group_add_entries (group, entries);g_option_context_set_main_group (context, group);//  g_option_context_add_group(context, gtk_get_option_group(TRUE));
#endif// 解析命令行参数,识别已添加到上下文的选项if  (!g_option_context_parse(context, &argc, &argv, &error)){ERR_MSG_V("%s", error->message);exit (1);}// 释放被解析的参数g_option_context_free(context);g_print("Now value is: repeats=%d, max_size=%d, verbose=%d, beep=%d\n",repeats, max_size, verbose, beep);return  0;
}3.编译
# gcc test.c -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include \
-L/usr/lib/x86_64-linux-gnu -lglib-2.0 -o test4.run测试
# ./test -h
Usage:test [OPTION?] - test tree model performanceThis is a glib demoHelp Options:-h, --help                          Show help optionsApplication Options:-s, --long name=arg_description     description-r, --repeats=N                     Average over N repetitions-m, --max-size=M                    Test up to 2^M items-v, --verbose                       Be verbose-b, --beep                          Beep when done--rand                              Randomize the data# ./test -r 66 -m 6
Now value is: repeats=66, max_size=6, verbose=0, beep=05.GOptionEntry结构体定义:
typedef struct GOptionEntry {const gchar *long_name;        // 参数的完整名 gchar        short_name;      // 简写名   gint         flags;            // 参数选项标准,如果不关心可直接赋0 GOptionArg   arg;              // 参数类型,int,string... gpointer     arg_data;     // 默 认参数值  const gchar *description;        // 参数意义说明  const gchar *arg_description;    // 参数占位符说明
}GOptionEntry;

glib命令行解参考

Linux glib命令行解析GOptionEntry使用相关推荐

  1. linux c 命令行解析 getopt getopt_long optarg optind opterr optopt 简介

    目录 getopt 函数 测试代码 getopt_long函数 代码示例 getopt 函数 头文件 #include<unistd.h> 定义函数 int getopt(int argc ...

  2. 浅谈linux的命令行解析参数之getopt_long函数

    前言 在linux中,经常需要各种命令,通常情况下都会带各种参数,而这些参数是如何解析的呢?通常使用GNU C提供的函数getopt.getopt_long.getopt_long_only函数来解析 ...

  3. C语言linux getopt_long()函数(命令行解析)(getopt、getopt_long_only)(短选项 -,长选项 --)(option结构体)(optind、optarg变量)

    参考文章:浅谈linux的命令行解析参数之getopt_long函数 文章目录 前言 一.关于命令行参数 二.getopt_long函数 参数以及返回值介绍(以上三个函数都适用): 1.argc和ar ...

  4. C语言自己实现ls -al 功能,支持更换目录。 利用LINUX命令行解析,实现ls,总结船长

    ls -a -l 要读入命令行,就读入-,后面的a和l是体现性质的作用 这个过程用C语言实现是困难的,需要用脚本语言 1.希望实现的功能如下: 流程图: 2. 用到的知识点: man 3 getopt ...

  5. python解析库_Python命令行解析库argparse

    原博文 2014-08-13 05:48 − 2.7之后python不再对optparse模块进行扩展,python标准库推荐使用argparse模块对命令行进行解析. 1.example 有一道面试 ...

  6. IConfiguration的命令行解析

    目录 介绍 背景 使用代码 支持哪些操作系统? 您可以绑定哪些类型的属性? 绑定到集合 嵌套属性和公共无参数构造函数 提供帮助 日志记录 兴趣点 介绍 有许多可用于.NET的命令行解析器,其中一些可与 ...

  7. linux基础命令行操作【1】

    目录 1.基本命令 2.文件相关知识 3.文本相关操作 4.文件解压.压缩.打包命令 1.基本命令 Ctrl+A/t+Fn+F6:管理Linux(Fn+数字) Linux:输入密码是不显示 Alt+F ...

  8. Linux快捷键-命令行下

    LINUX中命令行下是没有鼠标的,所以所有的操作只能通过键盘来实现.确实,鼠标对于电脑而言感觉还是很重要的,相对与Windows,Linux在易操作性上差的很多.所以,对于我们技术人员来讲,刚开始学习 ...

  9. Linux终端命令行下的常用快捷键使用

    Linux终端命令行下的常用快捷键 文章目录: ***`下面我只介绍常用的命令,其他的用的几乎很少,常用自然就是总会用的到的,而且用处比较大的,可以提高工作效率的,下面我亲自测试这些命令都是亲测可行的 ...

最新文章

  1. Android AM命令行启动程序的方法
  2. 双目深度估计中的自监督学习概览
  3. mongodb2.2.1安装
  4. python常用功能_python----常用功能
  5. js打开android应用程序,浏览器通过JS打开Android程序
  6. 前端学习(1864)vue之电商管理系统电商系统之绘制登录表单区域带icon的输入框
  7. 异常掉电导致的ORA-[kfrValAcd30]故障处理
  8. 图像编码中的小白问题sps ,pps ,nalu ,frame ,silce ect....
  9. Akamai:三季度DDoS攻击总数同比上涨138% 规模超100 Gbps
  10. Wordvec_句子相似度
  11. 【安卓大作业】Android Studio开发项目图书管理系统“书香驿站”
  12. u检验中的查u界值表_统计学中,知道u值,如何确定P值,是通过查表吗
  13. Android系统-MTK_android12默认横屏
  14. 李嘉诚激励员工的一首诗
  15. 【lzy学习笔记-dive into deep learning】数学预备 2.1-2.4
  16. Google网络硬盘GDrive在几个月内即将成真?!
  17. 胃酸过多症的食疗方 [转]
  18. Acer暗影骑士U盘重装系统教学分享
  19. Android 点击生成二维码
  20. python平方数_计算范围内的平方数(python)

热门文章

  1. S2SH新手框架结构的准备工作只需要导入这些文件
  2. 3月国内网民地域分布TOP12:广东雄踞榜首 涨幅1.59%
  3. 送给python新手关于pip用法和虚拟环境用法的介绍(英文)
  4. 27款实用高效的腾讯热门开源项目推荐
  5. A - A Dangerous Maze
  6. 接口是java面向对象的实现机制之一_以下说法正确的是: ()_接口是Java面向对象的实现机制之一,以下说法正确的是:( )...
  7. redis介绍以及使用 ppt_茶具一对一介绍,以及使用方法
  8. 5工程添加emwin库_手把手教你打造专属自己的远程私有库——上
  9. 社会网络分析-python_体育社 - 运动让生活更有乐趣 - 俱乐部活动在线管理系统...
  10. python车牌字符分割_OpenCV+Python识别车牌和字符分割的实现