- 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环境
第4章 Linux环境 主要内容 4.1 向程序传递参数 4.2 环境变量 4.3 时间和日期 4.4 临时文件 4.5 用户信息 4.6 主机信息 4.1向程序传递参数 main函数的声明:int main(int argc, char *argv[ ]) argc是程序参数的个数,argv是一个代表参数自身的字符串数组。 无论操作系统何时启动一个新程序,参数argc和argv都被设置并传递给main。这些参数通常由另一个程序提供,这个程序一般是shell。 shell接受用户输入的命令行,将命令行分解成单词,然后把这些单词放入argv数组。Linux的shell一般会在设置argc和argv之前对文件名参数进行通配符扩展。 关于程序参数的例子 关于程序参数的例子(续) 4.1.1 getopt函数 建议: 在应用程序中,所有的命令开关都应以一个短横线开头,其后包含单个字母或数字。不带后续参数的选项可以在一个短横线后规并到一起。 最好能为单字符开关增加一个更长、更有意义的开关名。 例: ls -l -a 与 ls -la gcc -h 与 gcc --help X/Open规范定义了命令行选项的标准用法,同时定义了在C语言程序中提供命令行开关的标准编程接口:getopt函数。 getopt函数 #include unistd.h int getopt(int argc, char *const argv[ ], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; getopt函数将传递给程序的main函数的argc和argv作为参数,同时接受一个选项指定符字符optstring,该字符串告诉getopt哪些选项可用,以及它们是否有关联值。 optstring是一个字符列表,每个字符代表一个单字符选项。如果一个字符后紧跟一个冒号,则表明该选项有一个关联值作为下一个参数。 getopt函数 getopt的返回值是argv数组中的下一个选项字符。循环调用getopt就可以依次得到每个选项。 getopt有如下行为: 如果选项有一个关联值,则外部变量optarg指向这个值。 如果选项处理完毕,getopt返回-1。 如果遇到一个无法识别的选项,getopt返回一个问号(?),并把它保存到外部变量optopt中。 如果一个选项要求有一个关联值,但用户并未提供这个值,getopt通常将返回一个问号。如果将选项字符串的第一个字符设置为冒号,那么getopt将在用户未提供值的情况下返回冒号而不是问号。 关于getopt的例子 关于getopt的例子(续1) 关于getopt的例子(续2) 执行结果: 关于getopt的例子(续3) 将源代码中的 “:if:lr” 改为“if:lr”后,重新编译,再次执行./argopt -f,输出结果为: getopt_long函数 getopt_long函数:可以接受以双划线(--)开头的长参数。 例:P119 option结构 长选项数组由一些类型为struct option的结构组成,每个结构描述了一个长选项的行为。该数组必须以一个包含全0的结构结尾。 struct option { const char *name; int has_arg; int *flag; int val; }; 各成员的含义见表4-1。 练习 编写程序,该程序可接受以下选项,并完成相应的功能: --add或-a,将该选项后的两个参数相加,并输出结果; --square或-s,求该选项后的参数的平方,并输出结果; --list或-l,直接输出该选项后带的参数。 自己可再增加额外的选项,每个选项下执行一定的功能,如输出当前时间、显示某个环境变量的值等等。 能识别出错误选项,并给出提示信息。 练习(续) 该程序运行后有类似于下面的输出结果: 4.2 环境变量 环境变量:是一些能用来控制shell脚本和其他程序行为的变量。也可以用它们来配置用户环境。 set命令可以列出所有的环境变量。 C语言程序可以通过putenv和getenv函数来访问环境变量。 char *getenv(const char *name); int putenv(const char *string); 环境变量 getenv函数以给定的名字搜索环境中的一个字符串,并返回与该名字相关的值。如果请求的变量不存在,就返回NULL。 putenv函数以一个格式为“名字=值”的字符串作为参数,并将该字符串加到当前环境中。成功则返回0,失败则返回-1。 例:P12
您可能关注的文档
- 路基施工工艺交底.doc
- 安全生产责任书(安防部).doc
- 文化产业创意.ppt
- 小学英语四年级上测试.doc
- 必修3第1章训练案.doc
- 慧聪访谈流程及常用问题.doc
- DSSS(直序扩频).doc
- 2007沈阳工大.doc
- 生活的小哲理(英文版).ppt
- 集团公司环境监测方案模版.doc
- 中国国家标准 GB 14287.5-2025电气火灾监控系统 第5部分:测量热解粒子式电气火灾监控探测器.pdf
- 《GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存》.pdf
- GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求.pdf
- 《GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求》.pdf
- 《GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备》.pdf
- GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备.pdf
- GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
- 中国国家标准 GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
原创力文档


文档评论(0)