Atlas的配置加载过程中,包括命令行解析,配置文件加载和插件加载的过程都依赖于glibc。之前对于glibc没有了解,因此在这一块的学习过程中赶到有点困难,因此特别在网上学习了一下。这里我们仅给出一些简单的实例,想要深入了解可以去查阅官方文档。
首先,命令行解析:
使用glibc完成命令行解析依赖于GOptionEntry对象:
typedef struct {
const gchar *long_name; // 命令名字
gchar short_name; // 命令名字缩写 如:-n
gint flags;
GOptionArg arg; // GOptionArg枚举的值,即知名该配置的类型
gpointer arg_data; // 指向解析出的数据
const gchar *description; // 参数描述
const gchar *arg_description; //参数占位符说明
} GOptionEntry;
实例:
static gint t_int;
static gboolean t_bool;
static gchar* t_string;
static GOptionEntry entries =
{
{"t_int",'i',0,G_OPTION_ARG_INT,&t_int,"test for int var","N"},
{"t_bool",'b',0,G_OPTION_ARG_NONE,&
首先,命令行解析:
使用glibc完成命令行解析依赖于GOptionEntry对象:
typedef struct {
const gchar *long_name; // 命令名字
gchar short_name; // 命令名字缩写 如:-n
gint flags;
GOptionArg arg; // GOptionArg枚举的值,即知名该配置的类型
gpointer arg_data; // 指向解析出的数据
const gchar *description; // 参数描述
const gchar *arg_description; //参数占位符说明
} GOptionEntry;
实例:
static gint t_int;
static gboolean t_bool;
static gchar* t_string;
static GOptionEntry entries =
{
{"t_int",'i',0,G_OPTION_ARG_INT,&t_int,"test for int var","N"},
{"t_bool",'b',0,G_OPTION_ARG_NONE,&