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

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

?? getopt.c

?? bison 2.0 主要可以用來(lái)做語(yǔ)法分析用的
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* Getopt for GNU.   NOTE: getopt is now part of the C library, so if you don't know what   "Keep this file name-space clean" means, talk to drepper@gnu.org   before changing it!   Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002,2003,2004	Free Software Foundation, Inc.   This file is part of the GNU C Library.   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,   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  *//* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.   Ditto for AIX 3.2 and <stdlib.h>.  */#ifndef _NO_PROTO# define _NO_PROTO#endif#ifdef HAVE_CONFIG_H# include <config.h>#endif#include <stdio.h>/* This needs to come after some library #include   to get __GNU_LIBRARY__ defined.  */#ifdef	__GNU_LIBRARY__/* Don't include stdlib.h for non-GNU C libraries because some of them   contain conflicting prototypes for getopt.  */# include <stdlib.h># include <unistd.h>#endif	/* GNU C library.  */#include <string.h>#ifdef VMS# include <unixlib.h>#endif#ifdef _LIBC# include <libintl.h>#else# include "gettext.h"# define _(msgid) gettext (msgid)#endif#if defined _LIBC && defined USE_IN_LIBIO# include <wchar.h>#endif#ifndef attribute_hidden# define attribute_hidden#endif/* Unlike standard Unix `getopt', functions like `getopt_long'   let the user intersperse the options with the other arguments.   As `getopt_long' works, it permutes the elements of ARGV so that,   when it is done, all the options precede everything else.  Thus   all application programs are extended to handle flexible argument order.   Using `getopt' or setting the environment variable POSIXLY_CORRECT   disables permutation.   Then the application's behavior is completely standard.   GNU application programs can use a third alternative mode in which   they can distinguish the relative order of options and other arguments.  */#include "getopt.h"#include "getopt_int.h"/* For communication from `getopt' to the caller.   When `getopt' finds an option that takes an argument,   the argument value is returned here.   Also, when `ordering' is RETURN_IN_ORDER,   each non-option ARGV-element is returned here.  */char *optarg;/* Index in ARGV of the next element to be scanned.   This is used for communication to and from the caller   and for communication between successive calls to `getopt'.   On entry to `getopt', zero means this is the first call; initialize.   When `getopt' returns -1, this is the index of the first of the   non-option elements that the caller should itself scan.   Otherwise, `optind' communicates from one call to the next   how much of ARGV has been scanned so far.  *//* 1003.2 says this must be 1 before any call.  */int optind = 1;/* Callers store zero here to inhibit the error message   for unrecognized options.  */int opterr = 1;/* Set to an option character which was unrecognized.   This must be initialized on some systems to avoid linking in the   system's own getopt implementation.  */int optopt = '?';/* Keep a global copy of all internal members of getopt_data.  */static struct _getopt_data getopt_data;#ifndef __GNU_LIBRARY__/* Avoid depending on library functions or files   whose names are inconsistent.  */#ifndef getenvextern char *getenv ();#endif#endif /* not __GNU_LIBRARY__ */#ifdef _LIBC/* Stored original parameters.   XXX This is no good solution.  We should rather copy the args so   that we can compare them later.  But we must not use malloc(3).  */extern int __libc_argc;extern char **__libc_argv;/* Bash 2.0 gives us an environment variable containing flags   indicating ARGV elements that should not be considered arguments.  */# ifdef USE_NONOPTION_FLAGS/* Defined in getopt_init.c  */extern char *__getopt_nonoption_flags;# endif# ifdef USE_NONOPTION_FLAGS#  define SWAP_FLAGS(ch1, ch2) \  if (d->__nonoption_flags_len > 0)					      \    {									      \      char __tmp = __getopt_nonoption_flags[ch1];			      \      __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];	      \      __getopt_nonoption_flags[ch2] = __tmp;				      \    }# else#  define SWAP_FLAGS(ch1, ch2)# endif#else	/* !_LIBC */# define SWAP_FLAGS(ch1, ch2)#endif	/* _LIBC *//* Exchange two adjacent subsequences of ARGV.   One subsequence is elements [first_nonopt,last_nonopt)   which contains all the non-options that have been skipped so far.   The other is elements [last_nonopt,optind), which contains all   the options processed since those non-options were skipped.   `first_nonopt' and `last_nonopt' are relocated so that they describe   the new indices of the non-options in ARGV after they are moved.  */static voidexchange (char **argv, struct _getopt_data *d){  int bottom = d->__first_nonopt;  int middle = d->__last_nonopt;  int top = d->optind;  char *tem;  /* Exchange the shorter segment with the far end of the longer segment.     That puts the shorter segment into the right place.     It leaves the longer segment in the right place overall,     but it consists of two parts that need to be swapped next.  */#if defined _LIBC && defined USE_NONOPTION_FLAGS  /* First make sure the handling of the `__getopt_nonoption_flags'     string can work normally.  Our top argument must be in the range     of the string.  */  if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len)    {      /* We must extend the array.  The user plays games with us and	 presents new arguments.  */      char *new_str = malloc (top + 1);      if (new_str == NULL)	d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0;      else	{	  memset (__mempcpy (new_str, __getopt_nonoption_flags,			     d->__nonoption_flags_max_len),		  '\0', top + 1 - d->__nonoption_flags_max_len);	  d->__nonoption_flags_max_len = top + 1;	  __getopt_nonoption_flags = new_str;	}    }#endif  while (top > middle && middle > bottom)    {      if (top - middle > middle - bottom)	{	  /* Bottom segment is the short one.  */	  int len = middle - bottom;	  register int i;	  /* Swap it with the top part of the top segment.  */	  for (i = 0; i < len; i++)	    {	      tem = argv[bottom + i];	      argv[bottom + i] = argv[top - (middle - bottom) + i];	      argv[top - (middle - bottom) + i] = tem;	      SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);	    }	  /* Exclude the moved bottom segment from further swapping.  */	  top -= len;	}      else	{	  /* Top segment is the short one.  */	  int len = top - middle;	  register int i;	  /* Swap it with the bottom part of the bottom segment.  */	  for (i = 0; i < len; i++)	    {	      tem = argv[bottom + i];	      argv[bottom + i] = argv[middle + i];	      argv[middle + i] = tem;	      SWAP_FLAGS (bottom + i, middle + i);	    }	  /* Exclude the moved top segment from further swapping.  */	  bottom += len;	}    }  /* Update records for the slots the non-options now occupy.  */  d->__first_nonopt += (d->optind - d->__last_nonopt);  d->__last_nonopt = d->optind;}/* Initialize the internal data when the first call is made.  */static const char *_getopt_initialize (int argc, char **argv, const char *optstring,		    int posixly_correct, struct _getopt_data *d){  /* Start processing options with ARGV-element 1 (since ARGV-element 0     is the program name); the sequence of previously skipped     non-option ARGV-elements is empty.  */  d->__first_nonopt = d->__last_nonopt = d->optind;  d->__nextchar = NULL;  d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT");  /* Determine how to handle the ordering of options and nonoptions.  */  if (optstring[0] == '-')    {      d->__ordering = RETURN_IN_ORDER;      ++optstring;    }  else if (optstring[0] == '+')    {      d->__ordering = REQUIRE_ORDER;      ++optstring;    }  else if (d->__posixly_correct)    d->__ordering = REQUIRE_ORDER;  else    d->__ordering = PERMUTE;#if defined _LIBC && defined USE_NONOPTION_FLAGS  if (!d->__posixly_correct      && argc == __libc_argc && argv == __libc_argv)    {      if (d->__nonoption_flags_max_len == 0)	{	  if (__getopt_nonoption_flags == NULL	      || __getopt_nonoption_flags[0] == '\0')	    d->__nonoption_flags_max_len = -1;	  else	    {	      const char *orig_str = __getopt_nonoption_flags;	      int len = d->__nonoption_flags_max_len = strlen (orig_str);	      if (d->__nonoption_flags_max_len < argc)		d->__nonoption_flags_max_len = argc;	      __getopt_nonoption_flags =		(char *) malloc (d->__nonoption_flags_max_len);	      if (__getopt_nonoption_flags == NULL)		d->__nonoption_flags_max_len = -1;	      else		memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),			'\0', d->__nonoption_flags_max_len - len);	    }	}      d->__nonoption_flags_len = d->__nonoption_flags_max_len;    }  else    d->__nonoption_flags_len = 0;#endif  return optstring;}/* Scan elements of ARGV (whose length is ARGC) for option characters   given in OPTSTRING.   If an element of ARGV starts with '-', and is not exactly "-" or "--",   then it is an option element.  The characters of this element   (aside from the initial '-') are option characters.  If `getopt'   is called repeatedly, it returns successively each of the option characters   from each of the option elements.   If `getopt' finds another option character, it returns that character,   updating `optind' and `nextchar' so that the next call to `getopt' can   resume the scan with the following option character or ARGV-element.   If there are no more option characters, `getopt' returns -1.   Then `optind' is the index in ARGV of the first ARGV-element   that is not an option.  (The ARGV-elements have been permuted   so that those that are not options now come last.)   OPTSTRING is a string containing the legitimate option characters.   If an option character is seen that is not listed in OPTSTRING,   return '?' after printing an error message.  If you set `opterr' to   zero, the error message is suppressed but we still return '?'.   If a char in OPTSTRING is followed by a colon, that means it wants an arg,   so the following text in the same ARGV-element, or the text of the following   ARGV-element, is returned in `optarg'.  Two colons mean an option that   wants an optional arg; if there is text in the current ARGV-element,   it is returned in `optarg', otherwise `optarg' is set to zero.   If OPTSTRING starts with `-' or `+', it requests different methods of   handling the non-option ARGV-elements.   See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.   Long-named options begin with `--' instead of `-'.   Their names may be abbreviated as long as the abbreviation is unique   or is an exact match for some defined option.  If they have an   argument, it follows the option name in the same ARGV-element, separated   from the option name by a `=', or else the in next ARGV-element.   When `getopt' finds a long-named option, it returns 0 if that option's   `flag' field is nonzero, the value of the option's `val' field   if the `flag' field is zero.   LONGOPTS is a vector of `struct option' terminated by an   element containing a name which is zero.   LONGIND returns the index in LONGOPT of the long-named option found.   It is only valid when a long-named option has been found by the most   recent call.   If LONG_ONLY is nonzero, '-' as well as '--' can introduce   long-named options.   If POSIXLY_CORRECT is nonzero, behave as if the POSIXLY_CORRECT   environment variable were set.  */int_getopt_internal_r (int argc, char **argv, const char *optstring,		    const struct option *longopts, int *longind,		    int long_only, int posixly_correct, struct _getopt_data *d){  int print_errors = d->opterr;  if (optstring[0] == ':')    print_errors = 0;  if (argc < 1)    return -1;  d->optarg = NULL;  if (d->optind == 0 || !d->__initialized)    {      if (d->optind == 0)	d->optind = 1;	/* Don't scan ARGV[0], the program name.  */      optstring = _getopt_initialize (argc, argv, optstring,				      posixly_correct, d);      d->__initialized = 1;    }  /* Test whether ARGV[optind] points to a non-option argument.     Either it does not have option syntax, or there is an environment flag     from the shell indicating it is not an option.  The later information     is only used when the used in the GNU libc.  */#if defined _LIBC && defined USE_NONOPTION_FLAGS# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \		      || (d->optind < d->__nonoption_flags_len		      \			  && __getopt_nonoption_flags[d->optind] == '1'))#else# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0')#endif  if (d->__nextchar == NULL || *d->__nextchar == '\0')    {      /* Advance to the next ARGV-element.  */      /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been	 moved back by the user (who may also have changed the arguments).  */      if (d->__last_nonopt > d->optind)	d->__last_nonopt = d->optind;      if (d->__first_nonopt > d->optind)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲老妇xxxxxx| 亚洲综合在线免费观看| 91在线观看一区二区| 日韩av午夜在线观看| 欧美韩日一区二区三区四区| 欧美精品18+| 色综合色狠狠综合色| 韩国女主播一区| 亚洲高清久久久| 中文字幕在线播放不卡一区| 精品美女被调教视频大全网站| 色综合久久66| 成人一区二区三区视频| 精品亚洲国产成人av制服丝袜| 一区二区三区精品久久久| 国产三级精品在线| 欧美v日韩v国产v| 69精品人人人人| 精品污污网站免费看| 色狠狠桃花综合| av一区二区不卡| 成人av免费在线观看| 国产乱码精品一品二品| 久久精品国产99久久6| 图片区日韩欧美亚洲| 亚洲第一激情av| 亚洲国产精品影院| 亚洲日本免费电影| 综合激情成人伊人| 国产精品麻豆99久久久久久| 国产性色一区二区| 久久精品综合网| 精品动漫一区二区三区在线观看| 日韩精品一区二区三区在线播放| 91久久香蕉国产日韩欧美9色| 91一区二区在线观看| www.一区二区| 99视频一区二区| 不卡的看片网站| 99视频在线精品| 色婷婷精品大在线视频| 91丨九色丨蝌蚪富婆spa| 99久久99久久久精品齐齐| 97se亚洲国产综合自在线不卡| 成人久久视频在线观看| 99在线热播精品免费| 99久久精品国产导航| 91丨九色丨蝌蚪丨老版| 日本韩国欧美一区二区三区| 欧美在线小视频| 欧美高清视频在线高清观看mv色露露十八 | 久久综合色鬼综合色| 久久众筹精品私拍模特| 国产日本一区二区| 亚洲欧洲日韩在线| 亚洲动漫第一页| 日韩电影在线观看网站| 韩国在线一区二区| 懂色一区二区三区免费观看| 不卡视频免费播放| 精品视频在线看| 欧美成人aa大片| 欧美极品少妇xxxxⅹ高跟鞋| 1024成人网| 日日夜夜精品视频免费| 国产成人自拍网| 日本丶国产丶欧美色综合| 欧美伦理影视网| 26uuu精品一区二区| 亚洲欧美成aⅴ人在线观看 | 国产成人一级电影| 91在线看国产| 777亚洲妇女| 国产精品无人区| 亚洲成人自拍偷拍| 国产九色精品成人porny| 91片在线免费观看| 日韩亚洲欧美综合| 一区在线播放视频| 蜜桃视频在线观看一区二区| 国产91丝袜在线播放| 欧美这里有精品| 久久免费的精品国产v∧| 亚洲伦在线观看| 美女在线观看视频一区二区| 91啪九色porn原创视频在线观看| 日韩欧美一级片| 亚洲视频中文字幕| 国内外精品视频| 欧美揉bbbbb揉bbbbb| 亚洲国产电影在线观看| 青青草国产精品亚洲专区无| 99久久综合国产精品| 日韩视频国产视频| 亚洲精品中文在线影院| 国产精品综合二区| 欧美日韩国产色站一区二区三区| 国产欧美日韩综合精品一区二区| 午夜视频在线观看一区二区三区| 高清免费成人av| 91精品国产麻豆国产自产在线| 《视频一区视频二区| 极品少妇一区二区三区精品视频| 在线免费观看一区| 成人欧美一区二区三区白人| 韩国欧美国产1区| 在线观看91精品国产麻豆| 国产精品不卡视频| 国产精品一二三四| 日韩欧美www| 日本亚洲三级在线| 欧美色网站导航| 亚洲欧美日韩小说| www.爱久久.com| 国产视频911| 久久国产精品99久久人人澡| 欧美精品自拍偷拍动漫精品| 一区二区在线看| 91无套直看片红桃| 国产精品色在线| 国产精品一区三区| 久久一日本道色综合| 麻豆精品视频在线观看| 欧美另类变人与禽xxxxx| 一区二区久久久久久| 一本大道久久a久久综合婷婷 | 一区二区三区不卡视频在线观看| 成人午夜碰碰视频| 国产精品久久毛片a| 国产91精品一区二区麻豆网站| 欧美mv日韩mv国产网站app| 免费成人美女在线观看.| 欧美一区二区三区人| 天使萌一区二区三区免费观看| 欧美揉bbbbb揉bbbbb| 亚洲123区在线观看| 欧美精品在线观看播放| 丝袜亚洲精品中文字幕一区| 欧美精品aⅴ在线视频| 免费在线看一区| 日韩一区二区影院| 久久99久久久欧美国产| 久久嫩草精品久久久精品一| 国产在线国偷精品产拍免费yy| 久久免费看少妇高潮| 成人黄色免费短视频| 亚洲欧美一区二区久久| 欧美三级一区二区| 视频在线观看91| xfplay精品久久| 高清国产一区二区| 亚洲色图欧美在线| 欧美日韩一级大片网址| 免费欧美日韩国产三级电影| 久久蜜桃一区二区| 99re视频这里只有精品| 亚洲永久精品大片| 日韩欧美你懂的| 国v精品久久久网| 一区二区三区中文字幕电影| 555www色欧美视频| 久国产精品韩国三级视频| 国产清纯白嫩初高生在线观看91 | 欧美性受xxxx| 日本成人中文字幕| 欧美极品xxx| 欧美在线不卡视频| 狠狠久久亚洲欧美| 成人免费一区二区三区在线观看| 在线观看免费视频综合| 日本不卡1234视频| 欧美国产日韩亚洲一区| 欧美最新大片在线看| 麻豆91在线播放免费| 国产精品乱人伦| 91超碰这里只有精品国产| 国内一区二区在线| 有码一区二区三区| 久久久久久电影| 欧美三级韩国三级日本三斤| 国产成人免费视频一区| 亚洲成a人v欧美综合天堂下载| 久久久九九九九| 欧美人体做爰大胆视频| 国产精品夜夜嗨| 天使萌一区二区三区免费观看| 中文字幕成人av| 欧美一级一区二区| 91免费观看在线| 国产乱码精品一区二区三区av| 亚洲综合成人网| 国产欧美精品国产国产专区 | 亚洲欧洲美洲综合色网| 91精品国产综合久久香蕉麻豆| 丁香激情综合五月| 久久成人免费电影| 亚洲福利视频三区| 亚洲婷婷国产精品电影人久久| 精品国产伦一区二区三区观看体验| 一本色道久久加勒比精品|