getopt()函数是C语言中的内置函数,用于解析命令行参数。
语法:
getopt(int argc, char *const argv[], const char *optstring)
optstring is simply a list of characters,
each representing a single character option.
返回值:getopt()函数返回不同的值:
- 如果该选项采用一个值,则该值是指向外部变量optarg的指针。
- 如果没有其他处理选项,则为“ -1”。
- ‘?’当存在无法识别的选项并将其存储到外部变量optopt中时。
- 如果一个选项需要一个值(例如本例中的-f)并且没有给出任何值,则getopt通常返回?。
通过将冒号放在选项字符串的第一个字符中,getopt返回:而不是?没有给出值时。
通常,从循环的条件语句内部调用getopt()函数。当getopt()函数返回-1时,循环终止。然后使用getopt()函数返回的值执行switch语句。
第二个循环用于处理第一个循环中无法处理的其余多余参数。
下面的程序说明了C语言中的getopt()函数:
// Program to illustrate the getopt()
// function in C
#include
#include
int main(int argc, char *argv[])
{
int opt;
// put ':' in the starting of the
// string so that program can
//distinguish between '?' and ':'
while((opt = getopt(argc, argv, “:if:lrx”)) != -1)
{
switch(opt)
{
case ‘i’:
case ‘l’:
case ‘r’:
printf(“option: %c\n”, opt);
break;
case ‘f’:
printf(“filename: %s\n”, optarg);
break;
case ‘:’:
printf(“option needs a value\n”);
break;
case ‘?’:
printf(“unknown option: %c\n”, optopt);
break;
}
}
// optind is for the extra arguments
// which are not parsed
for(; optind < argc; optind++){
printf(“extra arguments: %s\n”, argv[optind]);
}
return 0;
}
输出:
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。