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

📄 getopt1.c

📁 simple MIPS EJTAG u-boot loader
💻 C
字号:
/* getopt_long and getopt_long_only entry points for GNU getopt.   Copyright (C) 1987, 88, 89, 90, 91, 92, 1993	Free Software Foundation, Inc.   This program is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the   Free Software Foundation; either version 2, or (at your option) any   later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include "getopt.h"#if !__STDC__ && !defined(const) && IN_GCC#define const#endif#include <stdio.h>/* Comment out all this code if we are using the GNU C Library, and are not   actually compiling the library itself.  This code is part of the GNU C   Library, but also included in many other GNU distributions.  Compiling   and linking in this code is a waste when using the GNU C library   (especially if it is a shared library).  Rather than having every GNU   program understand `configure --with-gnu-libc' and omit the object files,   it is simpler to just do this in the source for each such file.  */#if defined (_LIBC) || !defined (__GNU_LIBRARY__)/* This needs to come after some library #include   to get __GNU_LIBRARY__ defined.  */#ifdef __GNU_LIBRARY__#include <stdlib.h>#elsechar *getenv ();#endif#ifndef	NULL#define NULL 0#endifintgetopt_long (argc, argv, options, long_options, opt_index)     int argc;     char *const *argv;     const char *options;     const struct option *long_options;     int *opt_index;{  return _getopt_internal (argc, argv, options, long_options, opt_index, 0);}/* Like getopt_long, but '-' as well as '--' can indicate a long option.   If an option that starts with '-' (not '--') doesn't match a long option,   but does match a short option, it is parsed as a short option   instead.  */intgetopt_long_only (argc, argv, options, long_options, opt_index)     int argc;     char *const *argv;     const char *options;     const struct option *long_options;     int *opt_index;{  return _getopt_internal (argc, argv, options, long_options, opt_index, 1);}#endif	/* _LIBC or not __GNU_LIBRARY__.  */#ifdef TEST#include <stdio.h>intmain (argc, argv)     int argc;     char **argv;{  int c;  int digit_optind = 0;  while (1)    {      int this_option_optind = optind ? optind : 1;      int option_index = 0;      static struct option long_options[] =      {	{"add", 1, 0, 0},	{"append", 0, 0, 0},	{"delete", 1, 0, 0},	{"verbose", 0, 0, 0},	{"create", 0, 0, 0},	{"file", 1, 0, 0},	{0, 0, 0, 0}      };      c = getopt_long (argc, argv, "abc:d:0123456789",		       long_options, &option_index);      if (c == EOF)	break;      switch (c)	{	case 0:	  printf ("option %s", long_options[option_index].name);	  if (optarg)	    printf (" with arg %s", optarg);	  printf ("\n");	  break;	case '0':	case '1':	case '2':	case '3':	case '4':	case '5':	case '6':	case '7':	case '8':	case '9':	  if (digit_optind != 0 && digit_optind != this_option_optind)	    printf ("digits occur in two different argv-elements.\n");	  digit_optind = this_option_optind;	  printf ("option %c\n", c);	  break;	case 'a':	  printf ("option a\n");	  break;	case 'b':	  printf ("option b\n");	  break;	case 'c':	  printf ("option c with value `%s'\n", optarg);	  break;	case 'd':	  printf ("option d with value `%s'\n", optarg);	  break;	case '?':	  break;	default:	  printf ("?? getopt returned character code 0%o ??\n", c);	}    }  if (optind < argc)    {      printf ("non-option ARGV-elements: ");      while (optind < argc)	printf ("%s ", argv[optind++]);      printf ("\n");    }  exit (0);}#endif /* TEST */

⌨️ 快捷键说明

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