linux命令行解析函数介绍
来源:互联网 发布:java中实现md5加密 编辑:程序博客网 时间:2024/06/03 20:10
函数原型:
int getopt(int argc,char * const argv[ ],const char * optstring);
给定了命令参数的数量 (argc)、指向这些参数的数组 (argv) 和选项字符串 (optstring) 后,getopt() 将返回第一个选项,并设置一些全局变量。使用相同的参数再次调用该函数时,它将返回下一个选项,并设置相应的全局变量。如果不再有识别到的选项,将返回 -1,此任务就完成了。
头文件:
#include<unistd.h>
全域变量:
extern char *optarg——指向当前选项参数(如果有)的指针。
extern int optind——再次调用 getopt() 时的下一个 argv 指针的索引。
extern opterr, optoptt——最后一个未知选项。
参数介绍:
argc和argv:这两个参数就是main函数中的两个参数,可直接使用。
optstring: optstring是选项字母组成的字串。optstring中的指定的内容的意义(例如getopt(argc, argv, "ab:c:de::");)
1.单个字符,表示选项,(如上例中的abcde各为一个选项)。
2.单个字符后接一个冒号:表示该选项后必须跟一个参数。参数紧跟在选项后或者以空格隔开。该参数的指针赋给optarg。(如上例中的b:c:)。
3 单个字符后跟两个冒号,表示该选项后可以跟一个参数,也可以不跟。如果跟一个参数,参数必须紧跟在选项后不能以空格隔开。该参数的指针赋给optarg。(如上例中的e::,如果没有跟参数,则optarg = NULL)。
执行以下命令进行测试:
int getopt(int argc,char * const argv[ ],const char * optstring);
给定了命令参数的数量 (argc)、指向这些参数的数组 (argv) 和选项字符串 (optstring) 后,getopt() 将返回第一个选项,并设置一些全局变量。使用相同的参数再次调用该函数时,它将返回下一个选项,并设置相应的全局变量。如果不再有识别到的选项,将返回 -1,此任务就完成了。
头文件:
#include<unistd.h>
全域变量:
extern char *optarg——指向当前选项参数(如果有)的指针。
extern int optind——再次调用 getopt() 时的下一个 argv 指针的索引。
extern opterr, optoptt——最后一个未知选项。
参数介绍:
argc和argv:这两个参数就是main函数中的两个参数,可直接使用。
optstring: optstring是选项字母组成的字串。optstring中的指定的内容的意义(例如getopt(argc, argv, "ab:c:de::");)
1.单个字符,表示选项,(如上例中的abcde各为一个选项)。
2.单个字符后接一个冒号:表示该选项后必须跟一个参数。参数紧跟在选项后或者以空格隔开。该参数的指针赋给optarg。(如上例中的b:c:)。
3 单个字符后跟两个冒号,表示该选项后可以跟一个参数,也可以不跟。如果跟一个参数,参数必须紧跟在选项后不能以空格隔开。该参数的指针赋给optarg。(如上例中的e::,如果没有跟参数,则optarg = NULL)。
如果在处理期间遇到了不符合optstring指定的其他选项getopt()将显示一个错误消息,并将全域变量optarg设为“?”字符,如果不希望getopt()打印出错信息,则只要将全域变量opterr设为0即可。
示例代码:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int argc, char *argv[]) {<span id="transmark"></span>if(argc == 1) { printf(“error 1”); return 0; } int opt; const char *optstring = “ab:c::d”; while((opt = getopt(argc, argv, optstring)) != -1) { switch(opt) { case ‘a’: printf(“%c\n”, opt); break; case ‘b’: printf(“%c, %s\n”, opt, optstring); break; case ‘c’: printf(“%c, %s\n”, opt, optstring); break; case ‘d’: printf(“%c, %s\n”, opt); break; } } return 0;}
执行以下命令进行测试:
a d b, 200c, 300
0 0
- linux命令行解析函数介绍
- linux命令行参数解析函数 getopt
- linux下命令行解析getopt函数
- Getopt:命令行解析函数
- linux解析命令行
- Linux 命令行参数解析
- Linux命令行解析
- Linux命令行解析
- Linux命令行帮助解析
- Linux命令行参数解析
- linux内核命令行解析
- linux c 命令行解析
- 命令行解析工具 Argparse介绍
- 命令行参数解析函数getopt_long()
- 解析命令行的getopt_long()函数
- 命令行参数解析函数--getopt
- 【Linux启动命令行】介绍memmap
- linux中解析命令行参数
- Unique Binary Search Trees II
- 实现水平listview,而且解决水平listview在scrollview中出现的滑动冲突
- boost::asio io线程退出的问题
- go语言内存分配之TCMalloc
- Android面试知识分类
- linux命令行解析函数介绍
- Mecanim Animator使用详解
- Linux netstat命令详解
- hibernate.hbm2ddl.auto(自动创建表结构)配置详解
- React Native 官方文档中文版
- Spring错误返回BindingResult
- IntelliJ IDEA 12 创建Web项目 详细版
- iOS和OS X中的bundle
- C++_虚析构函数