赞
踩
#include <unistd.h>
int getopt(int argc, char* argv【】, const char* optstring);
getopt直接分析命令行参数,找到选项和选项参数以及操作数的准确位置。
optstring里存放需要识别的选项字符(如果该选项有参数,则后面加冒号)。
命令行字符串个数。
命令行里的所有字符串将会以指针数组的形式存入argv【】里。
getopt函数每次返回一个选项字符,当没有选项时返回-1。
当解析到一个不在optstring里面的参数,或者一个必选值参数不带值时,返回“?”。
当optstring是以':'开头时,缺值参数的情况下会返回“:”,而不是“?”。
如果找到一个有参数的选项,则全局变量optarg将指向这个选项参数的首地址。
argv的当前索引值(下标)。当getopt()在while循环中使用时,循环结束后,剩下的字符串视为操作数,在argv【optind】或argv【argc-1】中可以找到。
当发现无效字符时,函数返回“?”或“:”,并且optopt包含了发现的无效选项字符。
这个变量非零时,函数为“无效选项”和“缺少参数选项”,并输出其错误信息。
- #include <stdio.h>
- #include <unistd.h>
-
- int main(int argc,char** argv){
- int c;
- while((c = getopt(argc,argv,"ab:"))!=-1){
- switch(c){
- case 'a':
- printf("option a\n");
- break;
- case 'b':
- printf("option b %s\n",optarg);
- break;
- default:
- perror("getopt error");
- return 1;
- }
- }
-
- if(optind != argc -1){
- printf("usage:%s getoption [-a] [-b <optarg>] <argument>\n",argv[0]);
- return 1;
- }
- printf("argument:%s\n",argv[optind]);
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。