getopt_long

#include <stdio.h>
#include <getopt.h>

char *l_opt_arg;
char* const short_options = "c:";

struct option long_options[] = {
  { "aa", 0, NULL, 0 },
  { "bb", 0, NULL, 0 },
  { "cc", required_argument, NULL, ‘c‘ },
  { 0, 0, 0, 0},
};

int main(int argc, char *argv[])
{
        int c;
        int index = 0;
        while((c = getopt_long (argc, argv, short_options, long_options, &index)) != -1)
        {
                switch (c)
                {
                        case 0:
                                switch (index)
                                {
                                        case 0:
                                                printf("is aa : c = %d, index = %d\n", c, index);
                                                break;
                                        case 1:
                                                printf("is bb : c = %d, index = %d\n", c, index);
                                                break;
                                        default:
                                                printf("no one : c= %d, index = %d\n", c, index);

break;

}
            break;
        case ‘c‘:
            l_opt_arg = optarg;
            printf("cc is %s(optarg), c = %c, index = %d!\n", l_opt_arg, c, index);
            break;
      }
  }
  return 0;
}

时间: 2024-10-01 06:57:33

getopt_long的相关文章

Linux下C程序设计(4)----操作环境变量 、程序传递参数getopt getopt_long操作、获取时间

通过命令传递参数查看环境变量  /************************************************************************* > File Name: env.c > Author: > Mail: > Created Time: Tue 24 Feb 2015 10:42:21 PM PST *******************************************************************

getopt_long的用法

int getopt_long(int argc, char * const argv[],const char *optstring, const struct option *longopts,int *longindex); 函数中的argc和argv通常直接从main()的两个参数传递而来.optsting是选项参数组成的字符串: option结构数组,option结构称为长选项表,其声明如下: struct option { const char *name; int has_arg;

命令行解析getopt_long

getopt_long函数可以轻松的解析main函数的命令行参数. int getopt_long(int argc,char * const argv[],const char *optstring,const struct option *longopts,int *longindex) 函数中的参数argc和argv通常直接从main()的两个参数传递而来.optstring是选项参数组成的字符串. 字符串optstring可以下列元素: 1. 单个字符,表示选项, 2. 单个字符后接一个

命令行参数选项处理:getopt()及getopt_long()函数使用

在运行某个程序的时候,我们通常使用命令行参数来进行配置其行为.命令行选项和参数控制 UNIX 程序,告知它们如何动作.当 gcc的程序启动代码调用我们的入口函数 main(int argc,char *argv[]) 时,已经对命令行进行了处理.argc 参数包含程序参数的个数,而 argv 包含指向这些参数的指针数组. 程序的参数可以分为三种:选项,选项的关联值,非选项参数.例如: $gcc getopt_test.c -o testopt getopt_test.c是非选项参数,-o是选项,

使用getopt_long来解析参数的小函数模板

getopt_long原型 #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct option { const char *name; //名称,下面实例中使用的--help,--version int has_arg; //是否有参数,可选0,1,2三个值,就是上面的那三个宏定义 int *flag; //返回值,传入的一个int指针,表示该参数的解析结果,如果是NULL,那么返

命令行选项解析函数(C语言):getopt()和getopt_long()

上午在看源码项目 webbench 时,刚开始就被一个似乎挺陌生函数 getopt_long() 给卡住了,说实话这函数没怎么见过,自然不知道这哥们是干什么的.于是乎百度了一番,原来是处理命令行选项参数的,的确,正规点的大型程序一般第一步就是处理命令行参数的,接着才是主干程序.在百度和 man 的帮助下,找到了具体使用方法和解释,二话不说赶紧学习一下,并总结出文档记录一下. 平时在写程序时常常需要对命令行参数进行处理,因为参数少,自己解析就可以搞定:如果命令行个数比较多时,如果按照顺序一个一个定

命令行參数选项处理:getopt()及getopt_long()函数使用

在执行某个程序的时候,我们通常使用命令行參数来进行配置其行为.命令行选项和參数控制 UNIX 程序,告知它们怎样动作. 当 gcc的程序启动代码调用我们的入口函数 main(int argc,char *argv[]) 时,已经对命令行进行了处理.argc 參数包括程序參数的个数,而 argv 包括指向这些參数的指针数组. 程序的參数能够分为三种:选项.选项的关联值,非选项參数. 比如: $gcc getopt_test.c -o testopt getopt_test.c是非选项參数.-o是选

getopt_long 函数

getopt_long, getopt_long_only -- 命令行解析函数,支持长选项解析 [说明]getopt_long/getopt_long_only是getopt的泛集,getopt是getopt_long的一个子集,getopt支持的所有特性,getopt_long都支持,包括错误打印.argv元素顺序调整等:getopt_long相比getopt增加了长选项的解析,具体如下: 1.形如:cmd [--create][--file] //对长选项的解析: 2.形如:cmd [--

apue编程之getopt ,getopt_long使用方法以及实例

1.getopt 1.1 函数定义 int getopt(int argc, char * const argv[], const char *optstring);#include <unistd.h> 该函数用来解析命令行参数.前两个参数设为main函数的两个参数.optstring设为由该命令要处理的各个选项组成的字符串.选项后面带有冒号':'时,该选项是一个带参数的选项. 例如:make -f filename -n-f是一个带参数的选项,-n是一个没有参数的选项. 可以下面这样调用函

getopt_long函数解析命令行参数

转载:http://blog.csdn.net/hcx25909/article/details/7388750 每一天你都在使用大量的命令行程序,是不是感觉那些命令行参数用起来比较方便,他们都是使用getopt来实现的. 在Linux下使用getopt写程序是一种比较cool的事情,下面来简单的介绍一下getopt的使用. === getopt使用 === 在讨论参数处理之前,我们先明确两个概念:选项.选项参数gcc -g -o test test.c我们经常使用上面的命令来编译程序,这里g和