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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? options.c

?? 不用說了吧
?? C
字號:
/* options.c -- process the command line options   Copyright (C) 2001, 2002 Free Software Foundation, Inc.   Written by Marcus Brinkmann.   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   of the License, 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., 51 Franklin Street, Fifth Floor, Boston,   MA 02110-1301 USA. */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include <getopt.h>#include <stdio.h>#include <errno.h>#if STDC_HEADERS# include <stdlib.h>#else# ifndef HAVE_STRCHR#  define strchr index#  define strrchr rindex# endif#endif#if HAVE_STRING_H# include <string.h>#else# include <strings.h>#endif#include <sys/socket.h>#include <net/if.h>#include "ifconfig.h"/* Be verbose about actions.  */int verbose;/* Array of all interfaces on the command line.  */struct ifconfig *ifs;/* Size of IFS.  */int nifs;static struct ifconfig ifconfig_initializer ={  NULL, /* name */  0, /* valid */};struct format formats[] ={  /* This is the default output format if no system_default_format is     specified.  */  {    "default",    "${format}{gnu}",  },  /* This is the standard GNU output.  */  {    "gnu",    "${first?}{}{${\\n}}${format}{gnu-one-entry}"  },  {    "gnu-one-entry",    "${format}{check-existance}" \    "${name} (${index}):${\\n}" \    "${addr?}{  inet address ${tab}{16}${addr}${\\n}}" \    "${netmask?}{  netmask ${tab}{16}${netmask}${\\n}}" \    "${brdaddr?}{  broadcast ${tab}{16}${brdaddr}${\\n}}" \    "${dstaddr?}{  peer address ${tab}{16}${dstaddr}${\\n}}" \    "${flags?}{  flags ${tab}{16}${flags}${\\n}}" \    "${mtu?}{  mtu ${tab}{16}${mtu}${\\n}}" \    "${metric?}{  metric ${tab}{16}${metric}${\\n}}" \    "${exists?}{hwtype?}{${hwtype?}{  link encap ${tab}{16}${hwtype}${\\n}}}" \    "${exists?}{hwaddr?}{${hwaddr?}{  hardware addr ${tab}{16}${hwaddr}${\\n}}}" \    "${exists?}{txqlen?}{${txqlen?}{  tx queue len ${tab}{16}${txqlen}${\\n}}}"  },  /* Resembles the output of ifconfig 1.39 (1999-03-19) in net-tools 1.52.  */  {    "net-tools",    "${format}{check-existance}" \    "${name}${exists?}{hwtype?}{${hwtype?}{${tab}{10}Link encap:${hwtype}}" \    "${hwaddr?}{  HWaddr ${hwaddr}}}${\\n}" \    "${addr?}{${tab}{10}inet addr:${addr}" \    "${brdaddr?}{  Bcast:${brdaddr}}" \    "${netmask?}{  Mask:${netmask}}" \    "${newline}}" \    "${tab}{10}${flags}" \    "${mtu?}{  MTU:${mtu}}" \    "${metric?}{  Metric:${metric}}" \    "${newline}" \    "${exists?}{txqlen?}{${txqlen?}{${tab}{10}txqueuelen:${txqlen}}${\\n}}" \    "${newline}"  },  /* Resembles the output of ifconfig shipped with unix systems like     Solaris 2.7 or HPUX 10.20.  */  {    "unix",    "${format}{check-existance}" \    "${name}: flags=${flags}{number}<${flags}{string}{,}>" \    "${mtu?}{ mtu ${mtu}}${\\n}" \    "${addr?}{${\\t}inet ${addr}" \    " netmask ${netmask}{0}{%02x}${netmask}{1}{%02x}" \    "${netmask}{2}{%02x}${netmask}{3}{%02x}" \    "${brdaddr?}{ broadcast ${brdaddr}}${\\n}}" \    "${exists?}{hwtype?}{${hwtype?}{${\\t}${hwtype}" \    "}${exists?}{hwaddr?}{${hwaddr?}{ ${hwaddr}}}${\\n}}"  },  /* Resembles the output of ifconfig shipped with OSF 4.0g.  */  {    "osf",    "${format}{check-existance}" \    "${name}: flags=${flags}{number}{%x}<${flags}{string}{,}>${\\n}" \    "${addr?}{${\\t}inet ${addr}" \    " netmask ${netmask}{0}{%02x}${netmask}{1}{%02x}" \    "${netmask}{2}{%02x}${netmask}{3}{%02x}" \    "${brdaddr?}{ broadcast ${brdaddr}}" \    "${mtu?}{ ipmtu ${mtu}}${\\n}}"  },  /* If interface does not exist, print error message and exit. */  {    "check-existance",    "${index?}{}" \    "{${error}{${progname}: error: interface `${name}' does not exist${\\n}}" \    "${exit}{1}}"  },  { 0, 0 }};/* Default format.  */const char *default_format;/* The "+" is necessary to avoid parsing of system specific pseudo options   like `-promisc'.  */static const char *short_options = "+i:a:m:d:p:b:M:vV" ;static struct option long_options[] = {#ifdef SYSTEM_LONG_OPTIONSSYSTEM_LONG_OPTIONS#endif  {"verbose",		no_argument,		0,	'v'},  {"version",		no_argument,		0,	'V'},  {"help",		no_argument, 		0,	'&'},  {"interface",		required_argument,	0,	'i'},  {"address",		required_argument,	0,	'a'},  {"netmask",		required_argument,	0,	'm'},  {"dstaddr",		required_argument,	0,	'd'},  {"peer",		required_argument,	0,	'p'},  {"brdaddr",		required_argument,	0,	'b'},  {"broadcast",		required_argument,	0,	'B'},  {"mtu",		required_argument,	0,	'M'},  {"metric",		required_argument,	0,	'3'},  {"format",		optional_argument,	0,	'4'},  {0, 0, 0, 0}};voidusage (int err){  if (err != EXIT_SUCCESS)    {      fprintf (stderr, "Usage: %s [OPTION]...%s\n", program_name,	       system_help ? " [SYSTEM OPTION]..." : "");      fprintf (stderr, "Try `%s --help' for more information.\n", program_name);    }  else    {      fprintf (stdout, "Usage: %s [OPTION]...%s\n", program_name,	       system_help ? " [SYSTEM OPTION]..." : "");      puts ("Configure network interfaces.\n\n\Options are:\n\  -i, --interface NAME  Configure network interface NAME\n\  -a, --address ADDR    Set interface address to ADDR\n\  -m, --netmask MASK    Set netmask to MASK\n\  -d, --dstaddr DSTADDR,\n\  -p, --peer DSTADDR    Set destination (peer) address to DSTADDR\n\  -b, --broadcast BRDADDR,\n\      --brdaddr BRDADDR Set broadcast address to BRDADDR\n\  -M, --mtu N           Set mtu of interface to N\n\      --metric N        Set metric of interface to N\n\      --format=FORMAT   Select output format (or set back to default)");      if (system_help_options)	puts (system_help_options);      puts("\  -v, --verbose         Output information when configuring interface.\n\      --help            Display this help and exit\n\  -V, --version         Output version information and exit");      if (system_help)	{	  puts ("\nSystem options are:");	  puts (system_help);	  puts ("\The system options provide an alternative, backward compatible command line\n\interface. It is discouraged and should not be used.");	}      fprintf (stdout, "\nSubmit bug reports to %s.\n", PACKAGE_BUGREPORT);    }  exit (err);}struct ifconfig *parse_opt_new_ifs (char *name){  struct ifconfig *ifp;  ifs = realloc (ifs, ++nifs * sizeof (struct ifconfig));  if (!ifs)    {      fprintf (stderr, "%s: can't get memory for interface "	       "configuration: %s\n", program_name, strerror (errno));      exit (EXIT_FAILURE);    }  ifp = &ifs[nifs - 1];  *ifp = ifconfig_initializer;  ifp->name = name;  return ifp;}#define PARSE_OPT_SET_ADDR(field, fname, fvalid) \void								\parse_opt_set_##field (struct ifconfig *ifp, char *addr)	\{								\  if (!ifp)							\    {								\      fprintf (stderr, "%s: no interface specified for " #fname	\	       " `%s'\n", program_name, addr);			\      usage (EXIT_FAILURE);					\    }								\  if (ifp->valid & IF_VALID_##fvalid)				\    {								\      fprintf (stderr, "%s: only one " #fname			\	       " allowed for interface `%s'\n",			\	       program_name, ifp->name);				\      usage (EXIT_FAILURE);					\    }								\  ifp->field = addr;						\  ifp->valid |= IF_VALID_##fvalid;				\}PARSE_OPT_SET_ADDR(address, address, ADDR)PARSE_OPT_SET_ADDR(netmask, netmask, NETMASK)PARSE_OPT_SET_ADDR(dstaddr, destination/peer address, DSTADDR)PARSE_OPT_SET_ADDR(brdaddr, broadcast address, BRDADDR)#define PARSE_OPT_SET_INT(field, fname, fvalid) \void								\parse_opt_set_##field (struct ifconfig *ifp, char *arg)		\{								\  char *end;							\  if (!ifp)							\    {								\      fprintf (stderr, "%s: no interface specified for " #fname	\	       " `%s'\n", program_name, arg);			\      usage (EXIT_FAILURE);					\    }								\  if (ifp->valid & IF_VALID_##fvalid)				\    {								\      fprintf (stderr, "%s: only one " #fname			\	       " allowed for interface `%s'\n",			\	       program_name, ifp->name);				\      usage (EXIT_FAILURE);					\    }								\  ifp->field =  strtol (arg, &end, 0);				\  if (*arg == '\0' || *end != '\0')				\    {								\      fprintf (stderr, "%s: mtu value `%s' for interface `%s' "	\              "is not a number.\n",				\	      program_name, optarg, ifp->name);			\      exit (EXIT_FAILURE);					\    }								\  ifp->valid |= IF_VALID_##fvalid;				\}PARSE_OPT_SET_INT(mtu, mtu value, MTU)PARSE_OPT_SET_INT(metric, metric value, METRIC)voidparse_opt_set_af (struct ifconfig *ifp, char *af){  if (!ifp)    {      fprintf (stderr, "%s: no interface specified for address"	       " family `%s'\n", program_name, af);      usage (EXIT_FAILURE);    }  if (! strcasecmp (af, "inet"))    ifp->af = AF_INET;  else    {      fprintf (stderr, "%s: unknown address family `%s' for interface `%s'"	       " is not a number.\n", program_name, optarg, ifp->name);      exit (EXIT_FAILURE);    }  ifp->valid |= IF_VALID_AF;}voidparse_opt_set_default_format (const char *new_format){  struct format *frm = formats;  const char *format = new_format;  if (! format)    format = system_default_format ?      system_default_format : "default";  while (frm->name)    {      if (! strcmp (format ? format : "default", frm->name))	break;      frm++;    }  /* If we didn't find the format, set the user specified one.  */  if (frm->name)    default_format = frm->templ;  else if (format)    default_format = format;  else    default_format = "default";}/* Must be reentrant!  */voidparse_opt_finalize (struct ifconfig *ifp){  if (ifp && ! ifp->valid)    {      ifp->valid = IF_VALID_FORMAT;      ifp->format = default_format;    }}char *program_name;voidparse_opt (int argc, char *argv[]){  int option;  struct ifconfig *ifp = ifs;  program_name = argv[0];  parse_opt_set_default_format (NULL);  while ((option = getopt_long (argc, argv, short_options,				long_options, 0)) != EOF)    {      /* XXX: Allow new ifs be created by system_parse_opt. Provide         helper function for that (esp necessary for system specific         parsing of remaining args.  */      if (system_parse_opt (&ifp, option, optarg))	continue;      switch(option)	{	case 'i': /* Interface name.  */	  parse_opt_finalize (ifp);	  ifp = parse_opt_new_ifs (optarg);	  break;	case 'a': /* Interface address.  */	  parse_opt_set_address (ifp, optarg);	  break;	case 'm': /* Interface netmask.  */	  parse_opt_set_netmask (ifp, optarg);	  break;	case 'd': /* Interface dstaddr.  */	case 'p':	  parse_opt_set_dstaddr (ifp, optarg);	  break;	case 'b': /* Interface broadcast address.  */	case 'B':	  parse_opt_set_brdaddr (ifp, optarg);	  break;	case 'M': /* Interface MTU.  */	  parse_opt_set_mtu (ifp, optarg);	  break;	case '3': /* Interface metric.  */	  parse_opt_set_metric (ifp, optarg);	  break;	case '4': /* Output format.  */	  parse_opt_set_default_format (optarg);	  break;	case 'v': /* Verbose.  */	  verbose = 1;	  break;	case '&': /* Help.  */	  usage (EXIT_SUCCESS);          /* Not reached.  */	case 'V': /* Version.  */          printf ("ifconfig (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);          exit (EXIT_SUCCESS);        case '?':        default:	  usage (EXIT_FAILURE);          /* Not reached.  */        }    }  parse_opt_finalize (ifp);  if (optind < argc)    {      if (! system_parse_opt_rest (&ifp, argc - optind, &argv[optind]))	usage (EXIT_FAILURE);      parse_opt_finalize (ifp);    }  if (!ifs)    {      /* No interfaces specified.  Get a list of all interfaces.  */      struct if_nameindex *ifnx, *ifnxp;      ifnx = ifnxp = if_nameindex();      while (ifnxp->if_index != 0 || ifnxp->if_name != NULL)        {	  struct ifconfig *ifp;	  ifs = realloc (ifs, ++nifs * sizeof (struct ifconfig));	  if (!ifs)	    {	      fprintf (stderr, "%s: can't get memory for interface "		       "configuration: %s\n", program_name, strerror (errno));	      exit (EXIT_FAILURE);	    }	  ifp = &ifs[nifs - 1];	  *ifp = ifconfig_initializer;	  ifp->name = ifnxp->if_name;	  ifp->valid = IF_VALID_FORMAT;	  ifp->format = default_format;          ifnxp++;        }      /* XXX: We never do if_freenameindex (ifnx), because we are         keeping the names for later instead using strdup         (if->if_name) here.  */    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产丝袜欧美中文另类| 免费在线看成人av| 精品一区二区免费| 在线区一区二视频| 国产精品色在线| 精品一区二区三区视频| 欧美日韩午夜影院| 亚洲一区二区成人在线观看| 成人视屏免费看| 久久精品夜色噜噜亚洲a∨| 亚洲国产精品一区二区尤物区| 国产99精品国产| 2023国产精华国产精品| 蜜臀精品一区二区三区在线观看 | 美女视频黄a大片欧美| 91麻豆6部合集magnet| 国产女人水真多18毛片18精品视频| 日韩福利视频网| 欧洲精品一区二区| 一区二区三区中文字幕在线观看| 国产凹凸在线观看一区二区| 欧美sm美女调教| 老司机午夜精品99久久| 欧美不卡一区二区| 免费观看30秒视频久久| 3d动漫精品啪啪一区二区竹菊| 亚洲综合在线免费观看| 91久久久免费一区二区| 一区二区三区四区在线| 色成年激情久久综合| 亚洲精品视频在线观看网站| 欧美亚洲国产一区二区三区va| 亚洲三级免费观看| 色综合久久88色综合天天6 | 国产精品久久久久久久久图文区| 国内成人免费视频| 国产亚洲一区二区三区在线观看| 精品一区二区免费看| 精品国产91久久久久久久妲己| 美女视频一区二区| 久久色在线视频| 丁香婷婷综合激情五月色| 亚洲欧洲无码一区二区三区| 色一情一伦一子一伦一区| 亚洲国产精品一区二区www在线 | 91豆麻精品91久久久久久| 一卡二卡欧美日韩| 欧美一级二级在线观看| 日本伊人色综合网| 久久影院午夜论| eeuss鲁片一区二区三区在线观看| 亚洲女爱视频在线| 欧美麻豆精品久久久久久| 国产一区啦啦啦在线观看| 国产精品免费久久| 欧美日韩免费观看一区二区三区 | 欧美视频一区二| 欧美aaaaaa午夜精品| 久久婷婷色综合| 91伊人久久大香线蕉| 午夜精品久久久久久久久久| 精品国产乱码久久久久久老虎| 国产成人三级在线观看| 亚洲成人在线网站| 中文字幕欧美区| 91精品国产综合久久精品图片| 国产精品综合二区| 亚洲国产美女搞黄色| 国产亚洲一本大道中文在线| 色婷婷综合久色| 国产一区视频导航| 亚洲国产成人tv| 日韩在线一区二区三区| 久久久久久久久久久久久女国产乱| 色婷婷av久久久久久久| 精品亚洲免费视频| 亚洲高清三级视频| 国产精品区一区二区三区| 欧美一区二区三区免费视频 | 欧美中文字幕不卡| 国产成人亚洲综合a∨婷婷 | 精品国产免费一区二区三区香蕉 | 亚洲国产日韩一级| 中文字幕永久在线不卡| 日韩欧美一级精品久久| 色婷婷综合在线| www.亚洲人| 精品无人码麻豆乱码1区2区 | 亚洲精品国产精华液| 久久品道一品道久久精品| 欧美一级午夜免费电影| 欧美在线免费视屏| 97久久人人超碰| 国产一区二区三区黄视频| 日本麻豆一区二区三区视频| 亚洲另类在线一区| 国产精品电影一区二区| 国产欧美日韩亚州综合 | 国产aⅴ综合色| 国产在线精品一区二区夜色| 美女性感视频久久| 麻豆精品在线观看| 日本午夜一区二区| 日韩黄色免费电影| 无码av中文一区二区三区桃花岛| 亚洲综合久久久久| 一区二区三区四区蜜桃 | 国产中文一区二区三区| 久久精品国产一区二区三| 美女视频免费一区| 日韩国产欧美在线视频| 视频在线观看91| 视频一区在线视频| 日韩精品欧美成人高清一区二区| 亚洲国产精品久久不卡毛片 | 大尺度一区二区| 成人黄色在线视频| hitomi一区二区三区精品| 99久久免费精品| 91高清视频免费看| 欧美精品三级日韩久久| 3d动漫精品啪啪1区2区免费| 日韩免费观看高清完整版在线观看| 91麻豆精品国产综合久久久久久| 91精品国产综合久久精品| 精品国产百合女同互慰| 久久久精品中文字幕麻豆发布| 中文字幕高清一区| 一区二区三区日韩精品| 亚洲国产毛片aaaaa无费看| 免费在线看一区| 国产传媒一区在线| 91网站在线播放| 欧美剧在线免费观看网站| 欧美一二区视频| 国产欧美一区二区三区沐欲| 亚洲天堂免费在线观看视频| 日韩电影在线一区| 国产精品一级黄| 色婷婷亚洲综合| 日韩免费在线观看| 亚洲视频免费在线| 日韩av一区二| 成人免费高清在线观看| 宅男在线国产精品| 国产欧美精品一区| 日本一区中文字幕| 91亚洲男人天堂| 欧美一区三区二区| 亚洲色图欧洲色图| 久久福利视频一区二区| 91在线云播放| 亚洲精品一区二区三区影院| 亚洲美女淫视频| 国产一区二区三区电影在线观看 | 国产丝袜欧美中文另类| 亚洲高清一区二区三区| 国产乱子伦一区二区三区国色天香| 色婷婷久久久久swag精品| 久久视频一区二区| 日韩成人av影视| 色88888久久久久久影院野外| 欧美岛国在线观看| 亚洲123区在线观看| 97精品国产露脸对白| 精品国产一区二区三区四区四| 亚洲欧美日韩中文字幕一区二区三区| 久久99精品国产麻豆婷婷洗澡| 91国产精品成人| 国产女主播视频一区二区| 美日韩一级片在线观看| 欧美色手机在线观看| 亚洲视频在线观看三级| 国产精品主播直播| 欧美mv日韩mv| 美腿丝袜一区二区三区| 欧美三级在线播放| 亚洲另类中文字| 91片黄在线观看| 国产精品伦理一区二区| 国产精品一区二区果冻传媒| 777色狠狠一区二区三区| 亚洲欧美国产高清| 懂色av中文一区二区三区| 精品国偷自产国产一区| 日本中文字幕一区| 欧美电影影音先锋| 日韩制服丝袜av| 制服丝袜国产精品| 日韩 欧美一区二区三区| 欧美视频一区在线| 婷婷综合五月天| 欧美日韩国产免费一区二区| 亚洲专区一二三| 欧美三级三级三级| 日韩成人一级片| 日韩欧美一级特黄在线播放| 免费观看一级欧美片| 精品卡一卡二卡三卡四在线| 久久精品国产秦先生|