linux getopt()函数简单使用
来源:互联网 发布:c语言水仙花数代码 编辑:程序博客网 时间:2024/06/07 06:04
记得自己原先写ls函数的时候,没有使用什么命令行参数处理函数,都是自己编写的函数实现的命令行参数的处理,今天在学习POSIX进程间通信的时候发现有一个函数getopt()其实就是专门来做这个事情的,把这个函数的使用简单总结一下吧。
这个函数的定义如下:
int getopt(int argc,char * const argv[ ],const char * optstring);
这个函数包含在头文件中,所以我们使用的时候,只须把这个头文件加进来就可以调用了。
与这个函数相关的有3个全局变量,我们得学习一下。
optarg——指向当前选项参数(如果有)的指针
optind——再次调用 getopt() 时的下一个 argv 指针的索引
optopt——最后一个已知选项
关于着三个变量,自己写个程序看一下,看一看它们到底代表的是什么。下面是一个简单的程序:
- #include <unistd.h>
- #include <stdio.h>
- int main(int argc, char *argv[])
- {
- int ch;
- printf("%d %s\n", optind, optarg);
- while((ch = getopt(argc, argv, "a:b::c:")) != -1) {
- switch(ch) {
- case 'a':
- printf("a:%s %d %d\n", optarg, optind, optopt);
- break;
- case 'b':
- printf("b:%s %d %d\n", optarg, optind, optopt);
- break;
- case 'c':
- printf("c:%s %d %d\n", optarg, optind, optopt);
- break;
- default:
- break;
- }
- }
- return 0;
- }
我们再来看一下这个程序的执行:
- ^_^[sunny@sunny-laptop ~/c_test]13$ ./a.out -a aaa -bfan -c cccc
- 1 (null)
- a:aaa 3 0
- b:fan 4 0
- c:cccc 6 0
- ^_^[sunny@sunny-laptop ~/c_test]14$ ./a.out -b fan
- 1 (null)
- b:(null) 2 0
- ^_^[sunny@sunny-laptop ~/c_test]15$ ./a.out -a fan
- 1 (null)
- a:fan 3 0
- ^_^[sunny@sunny-laptop ~/c_test]16$
程序说明:在getopt()的第三个参数实际上表示的是你所要求的命令行参数的格式要求,在本程序中的“a:b::c:”表示,参数是a,b,或者是c。“:”表示,需要一个空格,后面得再加一个参数,“::”表示后面不需要空格,得再加一个参数,所以现在的话,我们就能简单的使用这个很好的命令行参数处理函数了~
另外,我们还有一个函数getopt_long()函数,这个函数我没有使用过,估计和这个差不多吧~~
0
上一篇:erlang中io:format数据类型
下一篇:有意思的shell命令行提示符
相关热门文章
- test123
- 编写安全代码——小心有符号数...
- 彻底搞定C语言指针详解-完整版...
- 使用openssl api进行加密解密...
- 一段自己打印自己的c程序...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- linux getopt()函数简单使用
- Linux下getopt()函数的简单使用
- Linux下getopt()函数的简单使用
- Linux下getopt()函数的简单使用
- C语言getopt函数的简单使用
- [Linux]getopt() 函数介绍
- linux之getopt 函数
- linux getopt函数用法
- linux之getopt 函数
- Linux getopt 函数用法
- linux之getopt 函数
- linux之getopt 函数
- linux getopt()函数使用说明
- getopt()函数 -- Linux
- linux之getopt 函数
- linux之getopt函数
- linux之getopt 函数
- Linux之getopt函数
- erlang中io:format数据类型
- Json解析 开发实践 XML和JSON格式的数据
- 树套树——BZOJ3196/Luogu3380 二逼平衡树
- 轮播器(一)--UIScrollView实现图片轮播
- 【腾讯Bugly干货分享】舞动的表情包——浅析GIF格式图片的存储和压缩
- linux getopt()函数简单使用
- 有意思的shell命令行提示符
- 让自己的history命令显示时间
- CDR中如何把一个字分割成两半
- 样式中背景图片部分属性
- linux下svn命令使用大全
- QT学习笔记
- 共享内存是最快的一种IPC方式
- erlang中的元组与列表的区别与联系
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
tst是什么意思
庭笔顺
庭的笔顺
庭字笔顺
庭怎么组词
庭的组词是什么
平组词有哪些
庭芳
福州大学论坛
户外遮阳伞 庭院
户外庭院遮阳伞
户外太阳伞庭院伞
下沉式庭院装修效果图
庭院路灯厂家
70w庭院灯
小区庭院灯间距
铸铁庭院灯
太阳能欧式庭院灯
防水庭院灯
庭院灯系列
太阳能庭院灯批发
庭院灯灯具
不锈钢庭院灯
一体化庭院灯
庭院太阳能灯
30w庭院灯
太阳能灯庭院灯
庭院灯品牌
公园庭院灯
庭院灯单价
庭院灯配件
庭院灯基础
厂区庭院灯
太阳能庭院灯价格表
路灯庭院灯价格
4米庭院灯价格
庭院灯杆价格
庭院装饰灯
庭院景观灯厂家
庭院灯规格
鹤壁庭院灯