操作系统源代码

源代码在线查看: getopt.c

软件大小: 3264 K
上传用户: bbbbbb110
关键词: 操作系统 源代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*				 * getopt - parse command-line options				 */				/* $Header: getopt.c,v 1.1 89/12/18 14:39:31 eck Exp $ */								#include					#include					#include									#define ERR(s, c)       if(opterr){\					fputs(argv[0], stderr);\					fputs(s, stderr);\					fputc(c, stderr);\					fputc('\n', stderr);}								int     opterr = 1;				int     optind = 1;				int	optopt;				char    *optarg;								int				getopt(argc, argv, opts)				int argc;				char **argv;				char *opts;				{					static int sp = 1;					register c;					register char *cp;									if (sp == 1)						if (optind >= argc ||						   argv[optind][0] != '-' || argv[optind][1] == '\0')							return EOF;						else if (!strcmp(argv[optind], "--")) {							optind++;							return EOF;						}					optopt = c = argv[optind][sp];					if (c == ':' || (cp=strchr(opts, c)) == NULL) {						ERR (": illegal option -- ", c);						if (argv[optind][++sp] == '\0') {							optind++;							sp = 1;						}						return '?';					}					if (*++cp == ':') {						if (argv[optind][sp+1] != '\0')							optarg = &argv[optind++][sp+1];						else if (++optind >= argc) {							ERR (": option requires an argument -- ", c);							sp = 1;							return '?';						} else							optarg = argv[optind++];						sp = 1;					} else {						if (argv[optind][++sp] == '\0') {							sp = 1;							optind++;						}						optarg = NULL;					}					return c;				}							

相关资源