获取命令行参数,getopt
2016-01-14 15:58
302 查看
函数头文件:
#include<unistd.h>
函数原型:
int getopt(int argc,char * const argv[ ],const char * optstring);
函数说明:
该函数用来解析命令行参数,其中第一,二参数分别为main函数中的argc和argv,
参数optstring则为将要处理的字符串选项,如"a:b:cd",代表着 -a xx,-b xx ,-c xx ,-d xx选项,
其中xx代表传入的参数argv。
短参数定义
参数optstring所指的字串作为短参数列表,象"1ac:d::"就是一个短参数列表。
短参数的定义是一个'-' 后面跟一个字母或数字,象-a, -b就是一个短参数。
每个数字或字母定义一个参数。
其中短参数在getopt定义里分为三种:
1. 不带值的参数,它的定义即是参数本身。
2. 必须带值的参数,它的定义是在参数本身后面再加一个冒号。
3. 可选值的参数,它的定义是在参数本身后面加两个冒号 。
在这里拿上面的"1ac:d::"作为样例进行说明,其中的1,a就是不带值的参数,
c是必须带值的参数,d是可选 值的参数。
在实际调用中,'-1 -a -c cvalue -d', '-1 -a -c cvalue -ddvalue', '-1a -ddvalue -c cvalue'
都是合法的。这里需要注意三点:
1. 不带值的参数可以连写,象1和a是不带值的参数,它们可以-1 -a分开写,也可以-1a或-a1连写。
2. 参数不分先后顺序,'-1a -c cvalue -ddvalue'和'-d -c cvalue -a1'的解析结果是一样的。
3. 要注意可选值的参数的值与参数之间不能有空格,必须写成-ddvalue这样的格式,如果写成
-d dvalue这样的格式就会解析错误。
代码getopt.c如下
编译:
gcc getopt.c -o opt
运行:
./opt -d 127.0.0.1 -p 123456
#include<unistd.h>
函数原型:
int getopt(int argc,char * const argv[ ],const char * optstring);
函数说明:
该函数用来解析命令行参数,其中第一,二参数分别为main函数中的argc和argv,
参数optstring则为将要处理的字符串选项,如"a:b:cd",代表着 -a xx,-b xx ,-c xx ,-d xx选项,
其中xx代表传入的参数argv。
短参数定义
参数optstring所指的字串作为短参数列表,象"1ac:d::"就是一个短参数列表。
短参数的定义是一个'-' 后面跟一个字母或数字,象-a, -b就是一个短参数。
每个数字或字母定义一个参数。
其中短参数在getopt定义里分为三种:
1. 不带值的参数,它的定义即是参数本身。
2. 必须带值的参数,它的定义是在参数本身后面再加一个冒号。
3. 可选值的参数,它的定义是在参数本身后面加两个冒号 。
在这里拿上面的"1ac:d::"作为样例进行说明,其中的1,a就是不带值的参数,
c是必须带值的参数,d是可选 值的参数。
在实际调用中,'-1 -a -c cvalue -d', '-1 -a -c cvalue -ddvalue', '-1a -ddvalue -c cvalue'
都是合法的。这里需要注意三点:
1. 不带值的参数可以连写,象1和a是不带值的参数,它们可以-1 -a分开写,也可以-1a或-a1连写。
2. 参数不分先后顺序,'-1a -c cvalue -ddvalue'和'-d -c cvalue -a1'的解析结果是一样的。
3. 要注意可选值的参数的值与参数之间不能有空格,必须写成-ddvalue这样的格式,如果写成
-d dvalue这样的格式就会解析错误。
代码getopt.c如下
编译:
gcc getopt.c -o opt
运行:
./opt -d 127.0.0.1 -p 123456
#include<stdio.h> #include<unistd.h> #include<stdlib.h> int main(int argc,char *argv[]) { int ch; char ip[16]; int port; char *p = NULL; while((ch = getopt(argc,argv,"d:p:")) != -1) { switch(ch) { case 'd': strcpy(ip,argv[2]); printf("ip====[%s]\n",ip); continue; case 'p': port = strtoul(argv[4],&p,10); printf("port===[%d]\n",port); break; default: printf("err,please use:-d -p!\n"); break; } } printf("err!\n"); return 0; }
相关文章推荐
- 在Perl中使用Getopt::Long模块来接收用户命令行参数
- python getopt 参数处理小示例
- 详细解析命令行的getopt_long()函数
- Python中的getopt函数使用详解
- Python命令行参数解析模块getopt使用实例
- python采用getopt解析命令行输入参数实例
- Python getopt模块处理命令行选项实例
- 介绍一下python getopt 模块
- 如何简化Python程序|命令行参数|和|配置文件|的处理
- getopt函数
- getopt_long 杂谈
- shell getopt
- Python getopt long_option小问题
- (Michael Kerrisk)Linux系统编程手册读书笔记(一)-----解析命令行选项
- Linux / Unix Command: getopt
- getopt
- Python使用getopt处理命令行操作
- getopt函数
- getopt getopts
- apue编程之getopt ,getopt_long使用方法以及实例