getopt用法

原创 2007年10月05日 17:15:00

有关系统调用getopt:
声明:
         #include <unistd.h>
         int getopt(int argc, char *const argv[], const char *optstring);

         extern char *optarg;
         extern int optind, opterr, optopt;

使用方法:在while循环中反复调用,直到它返回-1。每当找到一个有效的选项字母,它就返回这个字母。如果选项有参数,就设置optarg指向这个参数。
当程序运行时,getopt()函数会设置控制错误处理的几个变量:
char *optarg ──如果选项接受参数的话,那么optarg就是选项参数。
int optind──argv的当前索引,当while循环结束的时候,剩下的操作数在argv[optind]到argv[argc-1]中能找到。
int opterr──当这个变量非零(默认非零)的时候,getopt()函数为"无效选项”和“缺少选项参数”这两种错误情况输出它自己的错误消息。可以在调用getopt()之前设置opterr为0,强制getopt()在发现错误时不输出任何消息。
int optopt──当发现无效选项的进修,getopt()函数或者返回'?'字符,或者返回字符':'字符,并且optopt包含了所发现的无效选项字符。

 

表头文件:#i     nclude     <unistd.h>   
    
    函数声明:int     getopt(int     argc,     char     *     const     argv[],     const     char     *optstring);   
    函数说明:getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring     则代表欲处理的选项字符串。此函数会返回在argv     中下一个的选项字母,此字母会对应参数optstring     中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg     即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。   
    
    返回值:如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring     的选项字母则返回“?”字符,分析结束则返回-1。   
    #include     <unistd.h>   
    #include     <stdio.h>   
    int     main(int     argc,     char     **argv)   
    {   
            int     ch;   
            opterr     =     0;   
            while(     (     ch     =     getopt(     argc,     argv,     "s:b:c:p:"     )     )     !=     EOF     )   
            {   
                    switch(ch)   
                    {   
                            case     's':   
                                    printf("s     opt:     %s/n",     optarg);   
                                    break;   
                            case     'b':   
                                    printf("b     opt:     %s/n",     optarg);   
                                    break;   
                            case     'c':   
                                    printf("c     opt:     %s/n",     optarg);   
                                    break;   
                            case     'p':   
                                    printf("p     opt:     %s/n",     optarg);   
                                    break;   
                            case     '?':   
                                    printf(     "illegal     option:     %c/n",     ch     );   
                                    break;   
                    }                 
    
            }   
            return     0;   
    }   
 

shell 传递选项和参数之 getopt 的用法

#这是我管理编译的一个脚本,主要部分请看 ===================== 之后的部分 #!/bin/bash make_clean() { } move_bin(...
  • yangzhongxuan
  • yangzhongxuan
  • 2011年11月16日 19:49
  • 9432

R语言getopt包的使用

1:加载包 library('getopt'); 2:spec = matrix(c( 'help' , 'h', 0, "logical", 'infile'...
  • rogerzhanglijie
  • rogerzhanglijie
  • 2017年07月21日 10:25
  • 363

学会使用getopt函数

介绍命令行参数处理函数getopt的一些细节
  • astrotycoon
  • astrotycoon
  • 2015年05月27日 15:26
  • 2614

使用getopt命令解析shell脚本的命令行选项

在之前的一篇文章中,介绍了如何利用shell内置的getopts命令来帮助我们处理shell脚本选项和参数,其缺点是只能处理短选项,无法处理长选项。下面,本文将要介绍的是getopt命令,它可以同时处...
  • sofia1217
  • sofia1217
  • 2016年08月18日 20:26
  • 6666

perl getopt 使用方法

我们在linux常常用到一个程序需要加入参数,现在了解一下perl中的有关控制参数的函数.getopt.在linux有的参数有二种形式.一种是--help,另一种是-h.也就是-和--的分别。--表示...
  • zhuzhiqi11
  • zhuzhiqi11
  • 2014年07月16日 15:10
  • 2906

getopt()函数用法.

getopt用法有关系统调用getopt:声明:         #include          int getopt(int argc, char *const argv[], const ch...
  • outsinre
  • outsinre
  • 2010年06月13日 18:25
  • 1561

C语言之getopt使用

在使用开源的程序时,随处可见程序可以接受输入的参数,比如著名的压测工具ab,使用的时候就可以输入如下命令:ab -c 100 -n 10000 http://www.37.com。这样就可以吧客户端数...
  • loophome
  • loophome
  • 2016年02月19日 20:43
  • 847

getopt的用法与optarg

getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。 #include extern char *optarg;  //选项的参数指针 extern int optind, ...
  • Mamong
  • Mamong
  • 2014年03月06日 20:14
  • 12333

linux shell命令行选项与参数用法详解--getopt

本文介绍了linux shell中使用命令行选项与命令行参数的方法,在bash中,可以用以下三种方式来处理命令 行参数,每种方式都有自己的应用场景 问题描述:在linux shell中如何处理...
  • cbbbc
  • cbbbc
  • 2015年02月01日 22:57
  • 6109

C语言getopt()函数的使用及参数

getopt(分析命令行参数)     相关函数表头文件         #include 定义函数         int getopt(int argc,char * c...
  • one423
  • one423
  • 2014年08月14日 14:38
  • 1051
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:getopt用法
举报原因:
原因补充:

(最多只允许输入30个字)