其他分享
首页 > 其他分享> > C-optget

C-optget

作者:互联网

函数getopt()用来分析命令行参数,其函数原型和相关变量声明如下:

optarg和optind是两个最重要变量。

optstring中的格式规范如下:

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


int main(int argc, char *argv[])
{
	extern char *optarg;			// 指向参数
	extern int optind;				// 指向下一个argv参数
	extern int opterr;
	extern int optopt;				// 不能识别的字符,表示为?
	int opt;
	char *optstring = "a:b::";		//	一个表示必须要参数,两个表示可有可无
	// 参数可有可无,必须是紧跟参数;必须要有参数de可以加空格
	
	for (int i = 0; i < argc; i++)
	{
		printf("argv[%d] : %s\n", i, argv[i]);
	}
	putchar('\n');
	
	while ((opt = getopt(argc, argv, optstring)) != -1)
	{
		switch (opt)
		{
			case 'a':	// 用于正常执行参数项
				printf("option:%c, argv:%s\n", opt, optarg);
				break;
			case '?':	// 用于错入参数项
				opterr = 0;
				printf("error argc:%c, argv:%s\n", optopt, argv[optind - 1]);
			case ':':	// 用于参数项缺少参数输入
				printf("option:%c missing argument\n", optopt);
				break;
			default:
				printf("option:%c\n", opt);
				break;
		}
		
	}
	return 0;
}	

标签:选项,optstring,int,argv,参数,extern,optget
来源: https://www.cnblogs.com/starc/p/16313606.html