C语言中的getopt()函数以解析命令行参数

getopt()是,用于取命令行选项内置C函数中的一个。该函数的语法如下-

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

操作字符串是字符列表。它们每个代表一个字符选项。

此函数返回许多值。这些如下-

  • 如果该选项采用一个值,则该值将由optarg指向。

  • 当没有更多选项继续时,它将返回-1

  • 返回“?” 为了表明这是一个无法识别的选项,它将其存储以供选择。

  • 有时某些选项需要一些值,如果该选项存在但这些值不存在,则它还将返回“?”。我们可以使用':'作为optstring的第一个字符,因此在那个时候,它将返回':'而不是'?' 如果没有给出值。

示例

#include <stdio.h>

#include <unistd.h>

main(int argc, char *argv[]) {

   int option;

   //在字符串的开头放置“:”,以便编译器可以区分“?” 和':'

   while((option = getopt(argc, argv, ":if:lrx")) != -1){ //get option from the getopt() method

      switch(option){

         //对于选项i,r,l,打印这些是选项

         case 'i':

         case 'l':

         case 'r':

            printf("Given Option: %c\n", option);

            break;

         case 'f': //here f is used for some file name

            printf("Given File: %s\n", optarg);

            break;

         case ':':

            printf("option needs a value\n");

            break;

         case '?': //used for some unknown options

            printf("unknown option: %c\n", optopt);

            break;

      }

   }

   for(; optind < argc; optind++){ //when some extra arguments are passed

      printf("Given extra arguments: %s\n", argv[optind]);

   }

}

输出结果

Given Option: i

Given File: test_file.c

Given Option: l

Given Option: r

Given extra arguments: hello

以上是 C语言中的getopt()函数以解析命令行参数 的全部内容, 来源链接: utcz.com/z/316403.html

回到顶部