设为首页 加入收藏

TOP

C语言学习笔记之getopt()
2014-11-23 22:22:17 来源: 作者: 【 】 浏览:27
Tags:语言学习 笔记 getopt

在写程序的时候,我们经常需要用到命令行参数,所以今天我们看看C语言中的getopt()这个函数。


C语言梳理一下,分布在以下10个章节中:


我们先看看下面这个


int main (int argc,char *argv[]) {


......


}


argc寄存了命令行参数个数(注意:包括程序名本身)



例如我们运行 ./ppyy.sh ok ko pp pe


| | | | |


对应的关系是: argv[0] argv[1] argv[2] argv[3] argv[4]


但是光这么用,我们是觉得不够的,记不记得我们在命令行经常使用ps -ef这样的命令,-ef就是命令行选项,它就像开关一样。


为了能具备命令行选项这样的功能,我们今天来看看getopt()这个函数。


首先,我们来看看一段程序<注:这段源程序来自head first>


#include
#include //getopt()在unistd.h这个头文件中提供


int main(int argc,char *argv[]){
char *delivery = "";
int thick = 0;
int count = 0;
char ch;


while ((ch = getopt(argc,argv,"d:t")) != EOF ){
switch (ch){
case 'd':
delivery = optarg;
break;
case 't':
thick = 1;
break;
default:
fprintf(stderr,"Unknown option:'%s'\n",optarg);


return 1;
}


}


argc -= optind;
argv += optind;


if (thick)
puts("Thick crust.");


if (delivery[0])
printf("To be delivered %s.\n",delivery);


puts("Ingredients:");
for (count=0;count puts(argv[count]);

return 0;
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Python获取服务器的厂商和型号信息 下一篇Angular项目构建指南 - 不再为Ang..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: