- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
参数列表
环境变量
程序退出码
系统调用错误处理
资源管理
系统日志
用户信息
Linux命令行规范
短参数:以单横开头,后跟单一字符,例:ls -h
长参数:以双横开头,后跟字符串,例:ls --help
程序访问参数列表的方法
主函数的参数argc和argv
程序接受命令行的输入参数,并解释之
编写程序,输出命令行参数
#include iostream
using namespace std;
int main( int argc, char* argv[] )
{
cout The program name is argv[0] . endl;
if( argc 1 )
{
cout With argc - 1 args as follows: endl;
for( int i = 1; i argc; ++i )
cout argv[i] endl;
}
else
cout With argc - 1 arguments. endl;
return 0;
}
选项数组的定义
结构体类型option:系统已定义,直接使用即可
// 头文件:“getopt.h”
struct option
{
// 选项长名称
const char * name;
// 该选项是否具有附加参数;0:无;1:有;2:可选
int has_arg;
// 指向整数,用于保存val值,设为0
int * flag;
// 选项短名称
int val;
};
函数getopt_long()
函数原型:int getopt_long( int argc, char * const * argv, const char * short_options, const struct option * long_options, int * long_index );
函数返回值为参数短名称,不存在时返回-1
如果为长选项,第五个参数输出该选项在长选项数组中的索引
参数处理方法
使用循环处理所有参数
参数处理方法(续)
如果遇到错误选项,输出错误消息并终止程序执行
处理附加参数时,用全局变量optarg传递其地址
完成所有处理后,全局变量optind为首个非可选参数的索引
编写程序,接受如下三个选项并执行正确操作
-h / --help:显示程序用法并退出
-o filename / --output filename:指定文件名
-v / --verbose:输出复杂信息
#include iostream
#include cstdlib
#include getopt.h
using namespace std;
const char * program_name;
// 输出程序用法
void OutputInfo( ostream os, int exit_code )
{
os Usage: program_name options [filename] endl;
os -h --help: Display this usage information. endl;
os -o --output filename: Write output to file. endl;
os -v --verbose: Print verbose messages. endl;
exit( exit_code );
}
int main( int argc, char* argv[] )
{
// 全部短选项的合并字符串,“:”表示带有附加参数
const char * const short_opts = ho:v;
const struct option long_opts[] =
{
{ help, 0, NULL, h },
{ output, 1, NULL, o },
{ verbose, 0, NULL, v },
{ NULL, 0, NULL, 0 }
};
// 参数指定的输出文件名
const char * output_filename = NULL;
// 是否显示复杂信息
int verbose = 0;
// 保存程序名
program_name = argv[0];
// 如果为长选项,第五个参数输出该选项在长选项数组中的索引
int opt = getopt_long( argc, argv, short_opts, long_opt
您可能关注的文档
- 2_5_1灵敏度分析(图解法).ppt
- 2第一章 与速冻食品有关的技术_conv.doc
- 2第2章 文件操作第二讲.ppt
- 2欧洲标准铝合金型材系统及国内主要供应体系介绍.doc
- 2饭店计划与战略管理.ppt
- 2莲花汽车-潜在客户开发及管理.ppt
- 3.1.2基因工程的基本程序.ppt
- 3.1山西能源基地的建设.ppt
- 3.1多层高层钢结构体系.ppt
- 3.1科技改变生活课件(湘教版九年级全册)6.ppt.ppt
- 中国国家标准 GB/Z 158-2025增材制造 设计 功能梯度增材制造.pdf
- 《GB/Z 158-2025增材制造 设计 功能梯度增材制造》.pdf
- GB/Z 42749.6-2025信息技术 IT赋能服务业务过程外包(ITES-BPO)生存周期过程 第6部分:风险管理指南.pdf
- 中国国家标准 GB/Z 42749.6-2025信息技术 IT赋能服务业务过程外包(ITES-BPO)生存周期过程 第6部分:风险管理指南.pdf
- 《GB/Z 42749.6-2025信息技术 IT赋能服务业务过程外包(ITES-BPO)生存周期过程 第6部分:风险管理指南》.pdf
- GB/T 46686.1-2025标准知识图谱 第1部分:实现指南.pdf
- 中国国家标准 GB/T 46686.1-2025标准知识图谱 第1部分:实现指南.pdf
- 《GB/T 46686.1-2025标准知识图谱 第1部分:实现指南》.pdf
- GB/Z 140-2025用于电量测量和监测、电能质量监测、数据采集和分析的装置的网络安全.pdf
- 中国国家标准 GB/Z 140-2025用于电量测量和监测、电能质量监测、数据采集和分析的装置的网络安全.pdf
原创力文档


文档评论(0)