分析命令行参数 (getopt函数)

    xiaoxiao2021-12-10  28

    #include<stdio.h> #include<unistd.h> int main(int argc,char **argv) {   int ch;   opterr = 0;   while((ch = getopt(argc,argv,”a:bcde”))!= -1)   switch(ch)      {       case ‘a’:       printf(“option a:’%s’\n”,optarg);       break;       case ‘b’:       printf(“option b :b\n”);       break;       default:        printf(“other option :%c\n”,ch);      }     printf(“optopt +%c\n”,optopt);

    }

    ./getopt –b option b:b $./getopt –c other option:c $./getopt –a other option :? $./getopt –a12345 option a:’12345’

    函数定义

    int getopt(int argc,char * const argv[ ],const char * optstring);

    getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。

    转载请注明原文地址: https://ju.6miu.com/read-700346.html

    最新回复(0)