最近写代码恰好碰见getopt()这个函数,去网上找了很久,说实话,其他人写的有点看不懂,所以将我认为可以便于理解的地方描述一下:
int getopt(int argc, char * const argv[], const char *optstring);
首先理解这个函数的功能(不能保证大家都能理解)
-
获取命令行信息,并读取命令行中的选项;
(命令行组成或许存在盲区,这是某位博主的这是他的博客)
Option就是选项,Option argument是参数:
-
每读取到一个选项,会返回一个int整型,这个整型不是选项位置,而是选项对应的ASCII码值;
-
这个函数附带了一些全局变量,这些全局变量中的optarg会对应着解析到的某个选项对应的参数;
其次我们需要理解函数原型
该函数的参数说明如下:
argc(参数个数):
- 类型:int
- 说明:这是从main函数传递过来的命令行参数个数。在C语言中,argc包含了程序名(即argv[0]),因此如果命令行中有3个参数(不包括程序名),则argc的值为4。
argv(参数内容):
- 类型:char * const argv[]
- 说明:这是从main函数传递过来的命令行参数数组。argv是一个指向指针的指针,每个指针指向一个C风格的字符串(以null字符\0结尾)。argv[0]通常是程序的名称,随后的元素是传递给程序的命令行参数。
optstring(选项字符串):
- 类型:const