⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getopt.c

📁 在ftplib-3.1-1-linux.tar.gz,修改了一个BUG,和增加了一个函数
💻 C
字号:
/* got this off net.sources */#include <stdio.h>#include <string.h>#include "getopt.h"/* * get option letter from argument vector */int	opterr = 1,		// should error messages be printed?	optind = 1,		// index into parent argv vector	optopt;			// character checked for validitychar	*optarg;		// argument associated with option#define EMSG	""char *progname;			// may also be defined elsewherestatic voiderror(char *pch){	if (!opterr) {		return;		// without printing	}	fprintf(stderr, "%s: %s: %c\n",		(NULL != progname) ? progname : "getopt", pch, optopt);}intgetopt(int argc, char **argv, char *ostr){	static char *place = EMSG;	/* option letter processing */	register char *oli;			/* option letter list index */	if (!*place) {		// update scanning pointer		if (optind >= argc || *(place = argv[optind]) != '-' || !*++place) {			return EOF; 		}		if (*place == '-') {			// found "--"			++optind;			return EOF;		}	}	/* option letter okay? */	if ((optopt = (int)*place++) == (int)':'		|| !(oli = strchr(ostr, optopt))) {		if (!*place) {			++optind;		}		error("illegal option");		return BADCH;	}	if (*++oli != ':') {			/* don't need argument */		optarg = NULL;		if (!*place)			++optind;	} else {		/* need an argument */		if (*place) {			optarg = place;		/* no white space */		} else  if (argc <= ++optind) {			/* no arg */			place = EMSG;			error("option requires an argument");			return BADCH;		} else {			optarg = argv[optind];		/* white space */		}		place = EMSG;		++optind;	}	return optopt;			// return option letter}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -