通过C中的getopt解析命令行参数

时间:2014-07-04 11:39:00

标签: c getopt

尝试解析命令行参数然后将它们打印出来......我怎么能用getopt做到这一点?

我需要getopt作为基础,以便以后开发代码/。

 #include <ctype.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>

 int main (int argc, char **argv)
 {
     char *cvalue = NULL;
     int c;

     while ((c = getopt (argc, argv, "n1n2n3n4c:")) != -1)              
         switch (c):
             case n1:
             case n2:
             case n3:
             case n4:
                 for(int i=0; i<argc;i++)
                 {
                     printf("Option: d%", argv[i]);
                 }
             default: break;


     printf ("n1flag = %d, n2flag = %d, n3flag = %d, n4flag = %d cvalue = %s\n",
              n1flag, n2flag, n3flag, n4flag, cvalue);

     for (index = optind; index < argc; index++)
         printf ("Non-option argument %s\n", argv[index]);

     return 0;
 }

1 个答案:

答案 0 :(得分:1)

getopt使用单个字符作为选项,因此您无法定义n1,n2,n3,n4等,而是需要为它们提供唯一的单个字符。

请参阅getopt手册页:http://linux.die.net/man/3/getopt