Linux下C程序命令行参数处理函数 - 我的文章 -

Linux下C程序命令行参数处理函数 - 我的文章 -

ID:37552709

大小:348.89 KB

页数:7页

时间:2019-05-25

Linux下C程序命令行参数处理函数 - 我的文章 -_第1页
Linux下C程序命令行参数处理函数 - 我的文章 -_第2页
Linux下C程序命令行参数处理函数 - 我的文章 -_第3页
Linux下C程序命令行参数处理函数 - 我的文章 -_第4页
Linux下C程序命令行参数处理函数 - 我的文章 -_第5页
资源描述:

《Linux下C程序命令行参数处理函数 - 我的文章 -》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux下C程序命令行参数处理函数getopt-我的文章-WeiRukai2010博客首页注册建议与交流排行榜加入友情链接推荐投诉搜索:帮助WeiRukai2010lovelinuxforever...WeiRukai2010.cublog.cn首页文章相册音乐博客圈收藏夹留言发表文章管理博客关于作者Linux下C程序命令行参数处理函数getoptLinux下很多程序甚至那些具有图形用户界面(graphicaluserinterface,GUI)的程序,都能接受和处理命令行选项。对于某些程序,这是与用户进行交互的主要手段。具有可靠的复杂命令行

2、参数处理机制,会使得您的应用程序更好、更有用。getopt()是一个专门设计来减轻命令行处理负担的库函数。1、命令行参数命令行程序设计的首要任务是解析命令行参数,GUI派的程序员很少关心这个。这里,对参数采用了一种比较通俗的

3、

4、<<2010年10月庚寅年(虎)>>

5、

6、定义:命令行上除命令名之外的字符串。参数由多项构成,项与项之间用空白符彼此隔开。日一二三四五六参数进一步分为选项和操作数。选项用于修改程序的默认行为或为程序提供信息,比较老的约定是以短划线开头。12选项后可以跟随一些参数,称为选项参数。剩下的就是操作数了。国庆节廿五34567892

7、、POSIX约定廿六廿七廿八廿九三十寒露初二POSIX表示可移植操作系统接口:PortableOperatingSystemInterface,电气和电子工程师协会(InstituteofElectrical10111213141516andElectronicsEngineers,IEEE)最初开发POSIX标准,是为了提高UNIX环境下应用程序的可移植性。然而,POSIX并不初三初四初五初六初七初八重阳节局限于UNIX。许多其它的操作系统,例如DECOpenVMS和MicrosoftWindowsNT,都支持POSIX标准。17181920

8、212223初十十一十二十三十四十五霜降24252627282930下面是POSIX标准中关于程序名、参数的约定:十七十八十九二十廿一廿二廿三31程序名不宜少于2个字符且不多于9个字符;廿四程序名应只包含小写字母和阿拉伯数字;我的分类选项名应该是单字符活单数字,且以短横‘-‘为前綴;我的文章分类多个不需要选项参数的选项,可以合并。(譬如:foo-a-b-c---->foo-abc)我的图片分类me选项与其参数之间用空白符隔开;我的链接分类选项参数不可选。我的音乐分类若选项参数有多值,要将其并为一个字串传进来。譬如:myprog-u"arnold

9、,joe,jane"。这种情况下,需要自己解决这些参数的分离问题。选项应该在操作数出现之前出现。特殊参数‘--'指明所有参数都结束了,其后任何参数都认为是操作数。选项如何排列没有什么关系,但对互相排斥的选项,如果一个选项的操作结果覆盖其他选项的操作结果时,最后一个选项起作用;如果选项重复,则顺序处理。允许操作数的顺序影响程序行为,但需要作文档说明。读写指定文件的程序应该将单个参数'-'作为有意义的标准输入或输出来对待。3、GNU长选项GNU鼓励程序员使用--help、--verbose等形式的长选项。这些选项不仅不与POSIX约定冲突,而且容易

10、记忆,另外也提供了在所有GNU工具之间保持一致性的机会。GNU长选项有自己的约定:对于已经遵循POSIX约定的GNU程序,每个短选项都有一个对应的长选项。额外针对GNU的长选项不需要对应的短选项,仅仅推荐要有。长选项可以缩写成保持惟一性的最短的字串。选项参数与长选项之间或通过空白字符活通过一个'='来分隔。选项参数是可选的(只对短选项有效)。长选项允许以一个短横线为前缀。4、基本的命令行处理技术C程序通过argc和argv参数访问它的命令行参数。argc是整型数,表示参数的个数(包括命令名)。main()函数的定义方式有两种,区别仅在于argv

11、如何定义:intmain(intargc,char*argv[])intmain(intargc,char**argv){{…………}}http://blog.chinaunix.net/u3/119881/showart.php?id=2358021[2010-10-180:40:49]Linux下C程序命令行参数处理函数getopt-我的文章-WeiRukai2010当C运行时库的程序启动代码调用main()时,已经对命令行进行了处理。argc参数包含参数的计数值,而argv包含指向这些参数的指针数组。argv[0]是程序名。一个很简单的命

12、令行处理技术的例子是echo程序,它可以将参数输出到标准设备上,用空格符隔开,最后换行。若命令行第一个参数为-n,那么就不会换行。清单1:#inclu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。