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

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

?? ifstat.c

?? ifstat源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    putc(' ', stdout);    delay = end->tv_sec - start->tv_sec + ((double) (end->tv_usec - start->tv_usec))    / (double) 1000000;  scale = delay * (options & OPT_UNITBITS ? 128 : 1024);    tkbin = tkbout = 0;  for (ptr = ifs->first; ptr != NULL; ptr = ptr->next) {    if (ptr->flags & IFSTAT_HASSTATS) {      kbin = (double) (ptr->bin - ptr->obin) / (double) scale;      tkbin += kbin;      kbout = (double) (ptr->bout - ptr->obout) / (double) scale;      tkbout += kbout;      ptr->flags &= ~IFSTAT_HASSTATS;    } else if (ptr->flags & IFSTAT_TOTAL) {      kbin = tkbin;      kbout = tkbout;    } else {      kbin = -1;      kbout = -1;    }    if (ptr->flags & IFSTAT_HASINDEX)      ptr->flags &= ~IFSTAT_HASINDEX;    else      hasindex = 0;    if (kbin >= 0)      snprintf(stats, sizeof(NUM), FMT(kbin), kbin);    else      strcpy(stats, NA);    strcpy(stats + sizeof(NUM) - 1, SPACE);    if (kbout >= 0)      snprintf(stats + sizeof(NUM) + sizeof(SPACE) - 2,	       sizeof(NUM), FMT(kbout), kbout);    else      strcpy(stats + sizeof(NUM) + sizeof(SPACE) - 2, NA);    if (pos == 0 && ptr != ifs->first)      print_wrap(options, ++line);    else if (pos > 0)      fputs(SPACE, stdout);        len = LEN(options, ptr->namelen);    print_center(stats, WIDTH, len);    pos = pos_next(pos, len, options);  }  termsize.datalines = line + 1;  if (!(options & OPT_NOSCROLL))    putc('\n', stdout);  if (hasindex && !(options & OPT_NOINDEX))    ifs->flags |= IFSTAT_HASINDEX;  else    ifs->flags &= ~IFSTAT_HASINDEX;}static void filter_interfaces(struct ifstat_list *ifs, int options) {  struct ifstat_data *cur, *next, *parent;  cur = ifs->first;  parent = NULL;  while (cur != NULL) {    if (!(cur->flags & IFSTAT_HASSTATS) ||	((options & OPT_NONULL) && cur->bin == 0 && cur->bout == 0)) {      next = cur->next;      if (parent != NULL)	parent->next = next;      else	ifs->first = next;      ifstat_free_interface(cur);      cur = next;    } else {      parent = cur;      cur = cur->next;    }  }}static void needarg(char opt, int arg, int argc) {  if (arg + 1 >= argc) {    fprintf(stderr, "%s: option '%c' requires an argument!\n", ifstat_progname, opt);    usage(EXIT_FAILURE);  }}static double getdelay(char *string) {  double delay;  if ((delay = atof(string)) < 0.1) {    fprintf(stderr, "%s: bad or too short delay '%s'!\n", ifstat_progname, string);    exit(EXIT_FAILURE);  }  return delay;}/* computes time remaining before start + delay */static int notdone(struct timeval *start, struct timeval *tv_delay,		   struct timeval *remains) {  struct timeval now;  struct timeval end;    gettimeofday(&now, NULL);  end.tv_sec = start->tv_sec + tv_delay->tv_sec;  end.tv_usec = start->tv_usec + tv_delay->tv_usec;  if (end.tv_usec >= 1000000) {    end.tv_sec += (end.tv_usec / 1000000);    end.tv_usec %= 1000000;  }    remains->tv_sec = end.tv_sec - now.tv_sec;  remains->tv_usec = end.tv_usec - now.tv_usec;  if (remains->tv_usec < 0) {    remains->tv_sec--;    remains->tv_usec += 1000000;  }  return (remains->tv_sec >= 0);}int main(int argc, char **argv) {  struct ifstat_list ifs;  struct ifstat_driver driver;  int arg, iter, lasthdr;  char *opt;  char *dname = NULL;  char *dopts = NULL;  double delay = 1, first_delay = 1;  int count = 0;  int options = 0;  struct timeval start, tv_delay, tv;  if ((ifstat_progname = strrchr(argv[0], '/')) != NULL)    ifstat_progname++;  else    ifstat_progname = argv[0];  ifs.flags = 0;  ifs.first = NULL;    /* parse options */  for (arg = 1; arg < argc; arg++) {    if (argv[arg][0] != '-' || argv[arg][1] == '\0')      break;    opt = argv[arg]+1;    while (*opt) {      switch(*opt) {      case 'a':	ifs.flags |= IFSTAT_LOOPBACK|IFSTAT_DOWN;	break;      case 'l':	ifs.flags |= IFSTAT_LOOPBACK;	break;      case 'v':	printf("ifstat version %s.\n"	       "Copyright (C) 2001-2003, Ga雔 Roualland <gael.roualland@dial.oleane.com>\n",	       ifstat_version);	opt = ifstat_list_drivers();	printf("Compiled-in drivers: %s.\n", (opt != NULL) ? opt : "");	free(opt);	exit(EXIT_SUCCESS);      case 'A':	options |= OPT_NOINDEX;	break;      case 'n':	options |= OPT_NOTITLE;	break;      case 't':	options |= OPT_TIMESTAMP;	break;      case 'w':	options |= OPT_FIXEDWIDTH;	break;      case 'b':	options |= OPT_UNITBITS;	break;      case 'z':	options |= OPT_NONULL;	break;      case 'W':	options |= OPT_WRAP|OPT_FIXEDWIDTH;	break;      case 'T':	ifs.flags |= IFSTAT_TOTAL;	break;      case 'S':	options |= OPT_NOSCROLL|OPT_NOTITLE;	break;      case 'd':	needarg(*opt, arg, argc);	dname = argv[++arg];	if ((dopts = strchr(dname, ':')) != NULL)	  *dopts++ = '\0';	break;      case 'i':	needarg(*opt, arg, argc);	if (!parse_interfaces(argv[++arg], &ifs)) {	  fprintf(stderr, "%s: error parsing interface list.\n", ifstat_progname);	  exit(EXIT_FAILURE);	}	options |= OPT_NOSCAN;	break;      case 's':	needarg(*opt, arg, argc);	dname = "snmp";	dopts = argv[++arg];	break;      case 'q':	ifstat_quiet = 1;	break;      case 'h':	usage(EXIT_SUCCESS);      default:	fprintf(stderr, "%s: invalid option '-%c'.\n", ifstat_progname, *opt);	usage(EXIT_FAILURE);      }      opt++;    }  }  if (options & OPT_NOSCROLL)    options &= ~OPT_WRAP;  /* has delay ? */  if (arg < argc) {    if ((opt = strchr(argv[arg], '/')) != NULL)      *opt++ = '\0';    first_delay = getdelay(argv[arg]);    delay = (opt != NULL) ? getdelay(opt) : first_delay;    arg++;  }  /* has count ? */  if (arg < argc) {    if ((count = atoi(argv[arg])) <= 0) {      fprintf(stderr, "%s: bad count '%s'!\n", ifstat_progname, argv[arg]);      return EXIT_FAILURE;    }    arg++;  }  /* extra arguments */  if (arg < argc) {    fprintf(stderr, "%s: too many arguments!\n", ifstat_progname);    return EXIT_FAILURE;  }  /* look for driver */  if (!ifstat_get_driver(dname, &driver)) {    fprintf(stderr, "%s: driver %s not available in this binary!\n", ifstat_progname, dname);    return EXIT_FAILURE;  }  /* init driver */  if (driver.open_driver != NULL &&      !driver.open_driver(&driver, dopts))    return EXIT_FAILURE;  if (ifs.first == NULL)    driver.scan_interfaces(&driver, &ifs);  /* poll interfaces for the first time */  if (ifs.first != NULL) {    if (driver.get_stats != NULL && !driver.get_stats(&driver, &ifs))      return EXIT_FAILURE;    gettimeofday(&start, NULL);        if (!(options & OPT_NOSCAN))      filter_interfaces(&ifs, options);        ifstat_reset_interfaces(&ifs);  }      if (ifs.first == NULL) {    fprintf(stderr, "%s: no interfaces to monitor!\n", ifstat_progname);    if (driver.close_driver != NULL)      driver.close_driver(&driver);    return EXIT_FAILURE;  }    if (ifs.flags & IFSTAT_TOTAL)    ifstat_add_interface(&ifs, "Total", IFSTAT_TOTAL);  /* update size of terminal if needed/possible */  if (!(options & OPT_NOTITLE) || (options & OPT_WRAP)) {    update_termsize(0);#ifdef SIGWINCH        SIGNAL(SIGWINCH, &update_termsize);#endif  }#ifdef SIGCONT  /* register SIGCONT for redisplay of header */  if (!(options & OPT_NOTITLE) || (options & OPT_NOSCROLL))    SIGNAL(SIGCONT, &sigcont);#endif      print_header(&ifs, options);  lasthdr = 1;  tv_delay.tv_sec = (int) first_delay;  tv_delay.tv_usec = (int) ((first_delay - tv_delay.tv_sec) * 1000000);  for (iter = 1; count == 0 || iter <= count; iter++) {    if (iter == 2 && first_delay != delay) {      tv_delay.tv_sec = (int) delay;      tv_delay.tv_usec = (int) ((delay - tv_delay.tv_sec) * 1000000);    }    tv = tv_delay;    while (select(0, NULL, NULL, NULL, &tv) != 0 && _sigwinch	   && notdone(&start, &tv_delay, &tv))      /* restart select if interrupted by sigwinch */      _sigwinch = 0;    if (_sigcont ||	(!(options & OPT_NOTITLE) &&	 termsize.lines > (3 * termsize.datalines) &&	 (iter - lasthdr) * termsize.datalines >=	 (termsize.lines - (3 * termsize.datalines)))) {      print_header(&ifs, options);      lasthdr = iter;      _sigcont = 0;    }    if (driver.get_stats != NULL && !driver.get_stats(&driver, &ifs))      return EXIT_FAILURE;    gettimeofday(&tv, NULL);    print_stats(&ifs, &start, &tv, options);    start = tv;    fflush(stdout);  }  if (driver.close_driver != NULL)    driver.close_driver(&driver);  return EXIT_SUCCESS;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国产一区二区三区四区| 99久久综合99久久综合网站| 亚洲欧美激情一区二区| 亚洲国产成人午夜在线一区 | 亚洲欧洲日产国产综合网| 久久色中文字幕| 久久免费美女视频| 中文字幕一区二区三区四区不卡 | 天堂久久一区二区三区| 亚洲国产欧美在线人成| 亚洲6080在线| 老司机午夜精品| 国产美女精品一区二区三区| 国产suv精品一区二区三区| 99视频精品在线| 欧美自拍偷拍午夜视频| 在线播放91灌醉迷j高跟美女| 日韩欧美综合一区| 国产精品久久久久影院| 亚洲最新视频在线观看| 日韩中文字幕1| 国产在线精品不卡| 99久久精品免费| 91精品国产一区二区人妖| 久久久久综合网| 亚洲一区二区三区三| 精品一区二区三区免费视频| 99视频一区二区| 欧美精品日韩一本| 久久久精品中文字幕麻豆发布| 中文字幕一区二区三区四区| 五月天网站亚洲| a在线播放不卡| 制服丝袜亚洲色图| 国产精品污网站| 日本中文字幕不卡| 一本久久精品一区二区| 精品国产91亚洲一区二区三区婷婷 | av在线不卡免费看| 91精品国产综合久久婷婷香蕉| 国产日韩欧美高清| 蜜芽一区二区三区| 欧美午夜片在线看| 国产亲近乱来精品视频| 日韩电影一区二区三区四区| 成人不卡免费av| 精品国产精品一区二区夜夜嗨| 一区二区欧美精品| 成av人片一区二区| 精品久久人人做人人爽| 性欧美大战久久久久久久久| 不卡av免费在线观看| 精品欧美黑人一区二区三区| 亚洲国产精品综合小说图片区| 成人手机电影网| 26uuu精品一区二区| 日本在线播放一区二区三区| 在线视频国内自拍亚洲视频| 中文字幕在线不卡国产视频| 国产精品一级二级三级| 欧美一区二区女人| 亚洲123区在线观看| 欧美视频一区二区三区在线观看 | 毛片av中文字幕一区二区| 色综合天天综合网天天狠天天| 久久久久久久久99精品| 久久电影网站中文字幕| 欧美一区二区三区色| 亚洲午夜精品久久久久久久久| 成人国产一区二区三区精品| 26uuu国产在线精品一区二区| 日韩国产欧美三级| 一本到三区不卡视频| 久久久国产精品不卡| 久久国产乱子精品免费女| 欧美一级免费观看| 欧美日韩在线不卡| 午夜久久久影院| 自拍偷拍亚洲激情| 亚洲精品一区在线观看| 91国偷自产一区二区三区观看 | 国产女人18毛片水真多成人如厕 | 日本一区二区三级电影在线观看| 欧美在线观看视频在线| 国产精品一二三四| 蜜臀av亚洲一区中文字幕| 亚洲精品欧美在线| 中文在线资源观看网站视频免费不卡| 欧美日韩成人一区| 在线观看亚洲一区| 91色九色蝌蚪| 99热99精品| 国产91色综合久久免费分享| 蜜臀a∨国产成人精品| 亚洲午夜精品久久久久久久久| 国产精品电影一区二区| 久久亚洲精精品中文字幕早川悠里| 精品视频一区二区三区免费| 一本大道久久a久久综合婷婷| 国产精品亚洲成人| 久久电影网站中文字幕| 日本亚洲免费观看| 午夜欧美一区二区三区在线播放| 一区二区三区四区在线免费观看| 日本一区二区免费在线| 久久久不卡网国产精品一区| 精品久久久久一区| 精品国产网站在线观看| 精品欧美乱码久久久久久| 日韩欧美一区在线| 日韩精品一区二区三区中文精品| 337p亚洲精品色噜噜狠狠| 欧美日韩久久久| 777亚洲妇女| 7777女厕盗摄久久久| 在线成人午夜影院| 欧美一区二区日韩| 精品国产乱码久久久久久浪潮| 日韩欧美一级在线播放| 精品久久人人做人人爰| 久久综合久久鬼色| 午夜伦欧美伦电影理论片| 五月天激情小说综合| 青青草91视频| 国产一区在线观看视频| 国产精品香蕉一区二区三区| 成人午夜在线视频| 91视频在线看| 欧美日韩亚洲综合在线| 欧美一区二区三区在线观看| 欧美一级xxx| 国产亚洲美州欧州综合国| 国产精品久久三| 亚洲国产一区二区a毛片| 天天操天天综合网| 狠狠色丁香婷综合久久| 成人免费黄色大片| 在线国产亚洲欧美| 日韩精品自拍偷拍| 国产精品进线69影院| 亚洲福利视频一区二区| 美女视频一区二区三区| 成人的网站免费观看| 欧美日韩国产经典色站一区二区三区| 制服丝袜中文字幕一区| 国产精品女同互慰在线看| 一区二区三区蜜桃| 韩国欧美一区二区| 色综合婷婷久久| 精品少妇一区二区三区日产乱码| 国产精品高清亚洲| 蜜桃视频在线一区| 一本大道久久a久久精二百| 日韩精品中文字幕在线一区| 中文字幕日韩欧美一区二区三区| 五月综合激情网| 东方aⅴ免费观看久久av| 欧美日本一区二区在线观看| 国产欧美日韩综合精品一区二区 | 久久成人av少妇免费| 99精品欧美一区二区蜜桃免费| 欧美一区午夜视频在线观看| 中文字幕成人av| 老司机午夜精品99久久| 色欧美片视频在线观看 | 日韩午夜电影av| 亚洲欧洲日韩在线| 国精品**一区二区三区在线蜜桃| 欧美色电影在线| 一区在线观看视频| 国产一区二区h| 欧美一级夜夜爽| 亚洲一区二区四区蜜桃| av一区二区不卡| 国产视频一区二区三区在线观看| 男女激情视频一区| 欧美色中文字幕| 亚洲精品乱码久久久久久日本蜜臀| 国产一区不卡视频| 日韩亚洲欧美高清| 香蕉影视欧美成人| 在线观看不卡一区| 亚洲猫色日本管| 99国产欧美另类久久久精品| 国产女主播一区| 国产成人午夜片在线观看高清观看| 欧美另类一区二区三区| 亚洲国产精品久久一线不卡| 色婷婷亚洲精品| 亚洲欧洲综合另类在线| 成人国产电影网| 亚洲欧洲日产国码二区| 成人av免费在线播放| 国产精品久久久久久户外露出| 国产毛片精品视频| 国产欧美一二三区| 国产成人av福利| 国产精品美女久久久久av爽李琼 | 国产精品一区免费在线观看| 欧美一级黄色录像|