Linux环境下C语言getopt函数的详细解析
该函数在头文件 getopt.h 中。 函数原型: int getopt ( int argc , char * const argv [ ] , const char * optstring ) ; 返回值为int类型,其实解析成功一个选项时(可能这时看不懂,没关系,后面会解释)这个返回的就是一个字符,因为字符可以转为整数。 若解析完毕,则返回-1。 前两个参数大家都知道,就是main函数的参数选项: argc 是参数个数, argv 是参数的字符串数组(不要忘记 argv[0] 是"./可执行文件名")。而第三个参数就是 选项字符串 。 什么是 选项字符串 ? 选项 大家都知道,比如: gcc -o test test.c gcc -v 上面的 -o 、 -v 就是选项,其中 -o 是带参数的选项,其参数为 test ,而 -v 是不带参数的选项。 那么说了这么多, 选项字符串其实就是一定格式的字符串,它决定了传给程序的参数 argv中 可以有哪些选项,而这些选项中哪些可以有参数。然后运行程序时, getopt 函数对 argv 进行解析,依次返回成功解析的选项,解析完毕后返回-1。 举个例子:选项字符串给定:“ab:c::”,那么说明运行程序可以给最多三个参数,分别为 -a , -b 和 -c , 其中 -a ,因为 没有后跟冒号 是不可以有参数的; -b ,因为