由于不带参数的选项可以写在一起,所以当getopt()函数找到-z的时候,发现在optstring中没有,这时候他就认为h也是一个选项,也就是-h 和 -z写在一起了,依次类推,直到找到-e,发现optstring中有。 函数二: getopt_long_only(int argc, char* argv[], const struct char* options, int* index) 先看个例子: ...
#include <stdio.h> #include <getopt.h> int main(int argc, char*argv[]) { int opt; while((opt = getopt(argc,argv,"abc:d::e")) != -1){ switch(opt){ case 'a': printf("option a:%s\n",optarg); break; case 'b': printf("option b:%s\n",optarg); break; case 'c': pri...
包含在getopt.h中,getopt_long()可以看成是支持长选项的getopt(),argc和argv与main(int argc, char *argv[])的参数相对应, 长选项是以"--"开头的,举个例子:"-h"与"--help" 20世纪90年代,Unix应用程序开始支持长选项,Linux是类Unix系统,因此兼容长选项 getopt_long()的前3个参数与getopt()相同,第4个...
h> #include <getopt.h> 这3个是全局变量 extern char *optarg; extern int optind, opterr, optopt; 功能介绍: optarg——指向当前选项参数(如果有)的指针。 比如: cp 123.c 888/ -fv 、 gcc 123.c -o app optind——再次调用 getopt() 时的下一个 argv 指针的索引。 optopt——最后一个已知...
C库中提供了相应的函数接口供用户解析命令行选项,我们常使用的有getopt_long_only和getopt_long,在使用的方法上相差不大。 命令行选项中一般可以选择传递长选项和短选项 长选项的用法为: ./a.out --username bryant --help 短选项的用法为: ./a.out -n bryant -h -v ...
optarg——指向当前选项参数(如果有)的指针(optarg不需要定义,在getopt.h中已经有定义)。 optind——再次调用 getopt() 时的下一个 argv 指针的索引。 optopt——最后一个已知选项。可以重复调用 getopt(),直到其返回 -1 为止. getopt_long()的说明。getopt_long的原型是: ...
getopt是一个用于解析命令行参数的函数,通常用于C语言中。其用法如下: 包含头文件:#include <unistd.h> 定义参数选项:定义一个包含选项字符的字符串,每个选项字符后可以接一个冒号表示需要参数。 调用getopt函数:int getopt(int argc, char * const argv[], const char *optstring); 处理返回值:getopt函数会返回...
getopt_long支持处理长短选项的命令行解析,函数在<getopt.h>头文件中。其函数定义是: intgetopt_long(intargc,char*constargv[],constchar*optstring,conststructoption*longopts,int*longindex); 接下来介绍一下其参数以及返回值。 argc和argv和main函数的两个参数一致。
这样处理简单有序的命令行还可以,对于复杂的命令行处理显得有心无力,于是GNU提供两个函数专门用来处理命令行参数:getopt和getopt_long。 二、getopt函数 getopt()函数声明如下: #include <unistd.h> Int getopt(int argc, char *const argv[], const char *optstring); ...
我们的主角---getopt()函数。 英雄不问出处,getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘记把他老人家include上。 再来看一下这家伙的原型(不是六耳猕猴): int getopt(int argc,char * const argv[ ],const char * optstring); 前...