google gflag使用方法举例
时间:2022-05-06
本文章向大家介绍google gflag使用方法举例,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言:
1. gflag是一种命令行编码参数解析工具,开源地址: https://github.com/gflags/gflags , 在caffe框架也使用了gflag来编码解析命令行.
那么什么是gflag呢? 下面简单描述一下gflag:
gflag支持如下数据格式:string ,double,int32, int64,uint64,bool需求:
1 #include<iostream>
2 #include<gflags/gflags.h>
3 #include<string>
4 #include<cstring>
5 #include<cstdio>
6 #include<cstdlib>
7
8 using namespace std;
9 using namespace google;
10
11 static bool check( const char * flagname , google::int32 age )
12 {
13
14 std::cout<<"the age "<< age <<std::ends;
15 if(age>16)
16 {
17 std::cout<<" is valid ~"<<std::endl;
18 return true;
19 }
20 std::cout<<" is invalid~"<<std::endl;
21 return false;
22 }
23
24 DEFINE_string(username , "xijun.gong" , "the student of name");
25 DEFINE_int32(age , 14 , "the student of age");
26 DEFINE_double(grade , 89 ,"the student of grade");
27
28 static const bool validate = google::RegisterFlagValidator(&FLAGS_age , &check);
29 int main(int argc, char** argv) {
30 google::SetVersionString("0.0.0.1");
31 google::SetUsageMessage("Usage: ./gflags");
32 google::ParseCommandLineFlags(&argc, &argv, true);
33 std::cout <<"Student Infomation: "<<std::endl;
34 std::cout << "username : " << FLAGS_username <<std::endl;
35 std::cout <<"age: " << FLAGS_age << std::endl;
36 std::cout <<"grade: "<< FLAGS_grade <<std::endl;
37 return 0;
38 }
使用命令编译:
g++ gflag.cc -o gflags -lgflags -lpthread
执行命令:
解析:
当我们age<16是,check返回的是False,gflag注册失败,程序启动失败. 当大于16时,程序正常启动.
- zabbix设置QQ邮箱告警
- 关于JSON CSRF的一些思考
- linux学习第七十篇:expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令
- linux学习第六十九篇:分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数
- linux学习第六十八篇:告警系统邮件引擎,运行告警系统
- linux学习第六十七篇:告警系统主脚本,告警系统配置文件,告警系统监控项目
- linux学习第六十六篇:shell中的函数,shell中的数组,告警系统需求分析
- linux学习第六十五篇:for循环,while循环, break跳出循环,continue结束本次循环
- linux学习第六十四篇:Shell脚本中的逻辑判断,文件目录属性判断, if特殊用法,case判断
- linux学习第六十三篇:Shell脚本介绍,Shell脚本结构和执行,date命令用法,Shell脚本中的变量
- 熔断Hystrix使用尝鲜
- 报警系统QuickAlarm之默认报警规则扩展
- PHP 面试知识梳理
- 报警系统QuickAlarm使用手册
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法