亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? getopt.c

?? 網(wǎng)絡(luò)嗅探器
?? C
?? 第 1 頁 / 共 2 頁
字號:
     int *longind;
     int long_only;
{
  optarg = NULL;

  if (optind == 0)
    optstring = _getopt_initialize (optstring);

  if (nextchar == NULL || *nextchar == '\0')
    {
      /* Advance to the next ARGV-element.  */

      if (ordering == PERMUTE)
	{
	  /* If we have just processed some options following some non-options,
	     exchange them so that the options come first.  */

	  if (first_nonopt != last_nonopt && last_nonopt != optind)
	    exchange ((char **) argv);
	  else if (last_nonopt != optind)
	    first_nonopt = optind;

	  /* Skip any additional non-options
	     and extend the range of non-options previously skipped.  */

	  while (optind < argc
		 && (argv[optind][0] != '-' || argv[optind][1] == '\0'))
	    optind++;
	  last_nonopt = optind;
	}

      /* The special ARGV-element `--' means premature end of options.
	 Skip it like a null option,
	 then exchange with previous non-options as if it were an option,
	 then skip everything else like a non-option.  */

      if (optind != argc && !strcmp (argv[optind], "--"))
	{
	  optind++;

	  if (first_nonopt != last_nonopt && last_nonopt != optind)
	    exchange ((char **) argv);
	  else if (first_nonopt == last_nonopt)
	    first_nonopt = optind;
	  last_nonopt = argc;

	  optind = argc;
	}

      /* If we have done all the ARGV-elements, stop the scan
	 and back over any non-options that we skipped and permuted.  */

      if (optind == argc)
	{
	  /* Set the next-arg-index to point at the non-options
	     that we previously skipped, so the caller will digest them.  */
	  if (first_nonopt != last_nonopt)
	    optind = first_nonopt;
	  return EOF;
	}

      /* If we have come to a non-option and did not permute it,
	 either stop the scan or describe it to the caller and pass it by.  */

      if ((argv[optind][0] != '-' || argv[optind][1] == '\0'))
	{
	  if (ordering == REQUIRE_ORDER)
	    return EOF;
	  optarg = argv[optind++];
	  return 1;
	}

      /* We have found another option-ARGV-element.
	 Skip the initial punctuation.  */

      nextchar = (argv[optind] + 1
		  + (longopts != NULL && argv[optind][1] == '-'));
    }

  /* Decode the current option-ARGV-element.  */

  /* Check whether the ARGV-element is a long option.

     If long_only and the ARGV-element has the form "-f", where f is
     a valid short option, don't consider it an abbreviated form of
     a long option that starts with f.  Otherwise there would be no
     way to give the -f short option.

     On the other hand, if there's a long option "fubar" and
     the ARGV-element is "-fu", do consider that an abbreviation of
     the long option, just like "--fu", and not "-f" with arg "u".

     This distinction seems to be the most useful approach.  */

  if (longopts != NULL
      && (argv[optind][1] == '-'
	  || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
    {
      char *nameend;
      const struct option *p;
      const struct option *pfound = NULL;
      int exact = 0;
      int ambig = 0;
      int indfound;
      int option_index;

      for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
	/* Do nothing.  */ ;

      /* Test all long options for either exact match
	 or abbreviated matches.  */
      for (p = longopts, option_index = 0; p->name; p++, option_index++)
	if (!strncmp (p->name, nextchar, nameend - nextchar))
	  {
	    if ((unsigned int)(nameend - nextchar) == (unsigned int)strlen (p->name))
	      {
		/* Exact match found.  */
		pfound = p;
		indfound = option_index;
		exact = 1;
		break;
	      }
	    else if (pfound == NULL)
	      {
		/* First nonexact match found.  */
		pfound = p;
		indfound = option_index;
	      }
	    else
	      /* Second or later nonexact match found.  */
	      ambig = 1;
	  }

      if (ambig && !exact)
	{
	  if (opterr)
	    fprintf (stderr, "%s: option `%s' is ambiguous\n",
		     argv[0], argv[optind]);
	  nextchar += strlen (nextchar);
	  optind++;
	  return '?';
	}

      if (pfound != NULL)
	{
	  option_index = indfound;
	  optind++;
	  if (*nameend)
	    {
	      /* Don't test has_arg with >, because some C compilers don't
		 allow it to be used on enums.  */
	      if (pfound->has_arg)
		optarg = nameend + 1;
	      else
		{
		  if (opterr)
		    {
		      if (argv[optind - 1][1] == '-')
			/* --option */
			fprintf (stderr,
				 "%s: option `--%s' doesn't allow an argument\n",
				 argv[0], pfound->name);
		      else
			/* +option or -option */
			fprintf (stderr,
			     "%s: option `%c%s' doesn't allow an argument\n",
			     argv[0], argv[optind - 1][0], pfound->name);
		    }
		  nextchar += strlen (nextchar);
		  return '?';
		}
	    }
	  else if (pfound->has_arg == 1)
	    {
	      if (optind < argc)
		optarg = argv[optind++];
	      else
		{
		  if (opterr)
		    fprintf (stderr, "%s: option `%s' requires an argument\n",
			     argv[0], argv[optind - 1]);
		  nextchar += strlen (nextchar);
		  return optstring[0] == ':' ? ':' : '?';
		}
	    }
	  nextchar += strlen (nextchar);
	  if (longind != NULL)
	    *longind = option_index;
	  if (pfound->flag)
	    {
	      *(pfound->flag) = pfound->val;
	      return 0;
	    }
	  return pfound->val;
	}

      /* Can't find it as a long option.  If this is not getopt_long_only,
	 or the option starts with '--' or is not a valid short
	 option, then it's an error.
	 Otherwise interpret it as a short option.  */
      if (!long_only || argv[optind][1] == '-'
	  || my_index (optstring, *nextchar) == NULL)
	{
	  if (opterr)
	    {
	      if (argv[optind][1] == '-')
		/* --option */
		fprintf (stderr, "%s: unrecognized option `--%s'\n",
			 argv[0], nextchar);
	      else
		/* +option or -option */
		fprintf (stderr, "%s: unrecognized option `%c%s'\n",
			 argv[0], argv[optind][0], nextchar);
	    }
	  nextchar = (char *) "";
	  optind++;
	  return '?';
	}
    }

  /* Look at and handle the next short option-character.  */

  {
    char c = *nextchar++;
    char *temp = my_index (optstring, c);

    /* Increment `optind' when we start to process its last character.  */
    if (*nextchar == '\0')
      ++optind;

    if (temp == NULL || c == ':')
      {
	if (opterr)
	  {
	    if (posixly_correct)
	      /* 1003.2 specifies the format of this message.  */
	      fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c);
	    else
	      fprintf (stderr, "%s: invalid option -- %c\n", argv[0], c);
	  }
	optopt = c;
	return '?';
      }
    if (temp[1] == ':')
      {
	if (temp[2] == ':')
	  {
	    /* This is an option that accepts an argument optionally.  */
	    if (*nextchar != '\0')
	      {
		optarg = nextchar;
		optind++;
	      }
	    else
	      optarg = NULL;
	    nextchar = NULL;
	  }
	else
	  {
	    /* This is an option that requires an argument.  */
	    if (*nextchar != '\0')
	      {
		optarg = nextchar;
		/* If we end this ARGV-element by taking the rest as an arg,
		   we must advance to the next element now.  */
		optind++;
	      }
	    else if (optind == argc)
	      {
		if (opterr)
		  {
		    /* 1003.2 specifies the format of this message.  */
		    fprintf (stderr, "%s: option requires an argument -- %c\n",
			     argv[0], c);
		  }
		optopt = c;
		if (optstring[0] == ':')
		  c = ':';
		else
		  c = '?';
	      }
	    else
	      /* We already incremented `optind' once;
		 increment it again when taking next ARGV-elt as argument.  */
	      optarg = argv[optind++];
	    nextchar = NULL;
	  }
      }
    return c;
  }
}

int
getopt (argc, argv, optstring)
     int argc;
     char *const *argv;
     const char *optstring;
{
  return _getopt_internal (argc, argv, optstring,
			   (const struct option *) 0,
			   (int *) 0,
			   0);
}

#endif	/* _LIBC or not __GNU_LIBRARY__.  */

#ifdef TEST

/* Compile with -DTEST to make an executable for use in testing
   the above definition of `getopt'.  */

int
main (argc, argv)
     int argc;
     char **argv;
{
  int c;
  int digit_optind = 0;

  while (1)
    {
      int this_option_optind = optind ? optind : 1;

      c = getopt (argc, argv, "abc:d:0123456789");
      if (c == EOF)
	break;

      switch (c)
	{
	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 '?':
	  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 */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩精品一区二区浪潮av| 欧美日精品一区视频| 国产女人18毛片水真多成人如厕| 韩国成人福利片在线播放| 精品久久一二三区| 国产成人午夜片在线观看高清观看| 久久久久一区二区三区四区| 成人av网站在线| 一区二区三区在线视频观看58| 91福利精品视频| 秋霞影院一区二区| 国产日韩欧美精品综合| 97久久超碰国产精品| 亚洲国产精品麻豆| 欧美mv日韩mv| 成人高清视频免费观看| 亚洲乱码国产乱码精品精可以看| 欧美日韩国产综合一区二区三区| 男男视频亚洲欧美| 亚洲国产高清在线观看视频| 在线免费观看日本一区| 久久99久久精品| 中文字幕一区二区在线观看| 欧美色国产精品| av一本久道久久综合久久鬼色| 亚洲欧美日本韩国| 欧美va亚洲va| 欧美午夜一区二区三区免费大片| 精品一区二区免费看| 中文字幕在线观看不卡| 欧美一级夜夜爽| www.66久久| 久久精品国产亚洲aⅴ | 成人av网址在线| 亚州成人在线电影| 日本一区二区三区四区| 欧美精品高清视频| 成人av小说网| 精品一区二区在线视频| 一区二区三区产品免费精品久久75| 日韩女优毛片在线| 欧美午夜片在线看| 成人免费视频caoporn| 奇米亚洲午夜久久精品| 一区二区三区四区国产精品| 26uuuu精品一区二区| 欧美午夜不卡视频| 99精品黄色片免费大全| 国产一区在线看| 亚洲韩国精品一区| 国产精品久久久一本精品| 精品日韩在线一区| 欧美久久高跟鞋激| 在线这里只有精品| 一本色道**综合亚洲精品蜜桃冫| 国产一区啦啦啦在线观看| 五月婷婷激情综合| 亚洲色图视频网站| 欧美国产禁国产网站cc| 精品福利一区二区三区| 欧美精品一级二级三级| 91免费视频观看| 成人黄色电影在线 | 91精品国产91综合久久蜜臀| 日本精品视频一区二区三区| 国产成人av自拍| 国产美女精品人人做人人爽| 蜜臀av国产精品久久久久| 午夜精品一区二区三区电影天堂| 亚洲精品乱码久久久久久日本蜜臀| 中文字幕二三区不卡| 国产日本欧美一区二区| 欧美mv和日韩mv国产网站| 精品三级在线观看| www亚洲一区| 久久美女高清视频| 国产欧美日韩精品在线| 久久综合九色综合97_久久久| 日韩欧美色电影| 日韩一级黄色大片| 日韩精品一区二区三区中文精品| 《视频一区视频二区| 国产视频911| 国产精品视频线看| 亚洲青青青在线视频| 亚洲欧美日韩电影| 亚洲第一福利视频在线| 亚洲一区视频在线| 日日夜夜精品视频天天综合网| 午夜私人影院久久久久| 日本va欧美va精品| 黄色资源网久久资源365| 国内精品在线播放| 波波电影院一区二区三区| 色综合天天综合给合国产| 日本高清不卡一区| 欧美一级免费大片| 久久久久久麻豆| 亚洲三级电影网站| 天天综合色天天综合| 久久精品国产**网站演员| 国产成人在线免费| 91色九色蝌蚪| 欧美一级午夜免费电影| 久久久久久久网| 一区二区成人在线| 久久精品国产在热久久| 成人国产一区二区三区精品| 欧美无砖专区一中文字| 欧美成人vr18sexvr| 日本一区二区三区电影| 夜夜嗨av一区二区三区中文字幕 | 久久国产精品99精品国产| 国产成人激情av| 欧美日韩精品一二三区| 久久精品人人做人人综合| 亚洲美女视频一区| 精品写真视频在线观看| 99久久精品99国产精品| 欧美一区二区网站| 中文一区二区完整视频在线观看| 亚洲夂夂婷婷色拍ww47| 久久99精品国产麻豆婷婷洗澡| 波多野结衣一区二区三区| 欧美一级理论性理论a| 国产精品美女久久久久久久久 | 国产一区二区三区| 精品视频在线免费| 国产欧美va欧美不卡在线| 丝袜美腿亚洲综合| 成人午夜在线免费| 欧美成人精品3d动漫h| 亚洲久本草在线中文字幕| 国产麻豆91精品| 欧美日韩国产另类一区| 国产精品视频一二三| 青椒成人免费视频| 91电影在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 午夜精品视频在线观看| 精品伦理精品一区| 亚洲自拍偷拍九九九| 成人av资源下载| 欧美r级在线观看| 亚洲gay无套男同| 色综合一区二区三区| 久久久不卡影院| 久久精品噜噜噜成人av农村| 91成人免费电影| 亚洲视频在线一区二区| 国产精品一区二区无线| 日韩视频免费观看高清完整版在线观看 | 国产成人午夜精品影院观看视频| 制服丝袜日韩国产| 午夜激情综合网| 在线视频一区二区免费| 1024成人网| 91在线观看视频| 亚洲欧洲www| 91精品欧美一区二区三区综合在 | 不卡av在线网| 精品国产一区二区在线观看| 亚洲高清在线精品| 在线观看日韩国产| 亚洲少妇中出一区| av亚洲精华国产精华精华| 欧美激情自拍偷拍| 盗摄精品av一区二区三区| 久久久精品tv| 国产精品自产自拍| 亚洲精品在线三区| 国产一区二区精品久久91| 久久人人爽人人爽| 国产成人8x视频一区二区| 国产欧美日韩精品一区| 国产传媒日韩欧美成人| 国产精品免费av| 在线视频你懂得一区| 亚洲国产一区二区三区青草影视| 欧美午夜精品电影| 日韩电影一二三区| 久久综合狠狠综合| 成人国产电影网| 亚洲第一在线综合网站| 777奇米成人网| 国产一区中文字幕| 欧美激情一区在线| 欧美影片第一页| 日本不卡一区二区| 久久精品在线免费观看| 99精品久久久久久| 日韩精品亚洲一区二区三区免费| 欧美一区午夜视频在线观看| 极品少妇xxxx偷拍精品少妇| 国产欧美日韩在线观看| 91久久精品一区二区三| 日韩精品一二区| 中文一区在线播放| 欧美吻胸吃奶大尺度电影| 久久精品99久久久|