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

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

?? ifstat.c

?? ifstat源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * ifstat - InterFace STATistics * Copyright (c) 2001, Ga雔 Roualland <gael.roualland@dial.oleane.com> * * 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., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Id: ifstat.c,v 1.47 2003/11/22 01:27:51 gael Exp $ */#ifdef HAVE_CONFIG_H#include <config.h>#endif#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#if STDC_HEADERS#include <string.h>#else# ifndef HAVE_STRCHR#  define strchr index#  define strrchr rindex# endifchar *strchr (), *strrchr ();# ifndef HAVE_MEMCPY#  define memcpy(d, s, n) bcopy ((s), (d), (n))#  define memmove(d, s, n) bcopy ((s), (d), (n))# endif#endif#ifdef HAVE_CTYPE_H#include <ctype.h>#endif#if TIME_WITH_SYS_TIME# include <sys/time.h># include <time.h>#else# if HAVE_SYS_TIME_H# include <sys/time.h># else#  include <time.h># endif#endif#ifdef HAVE_SYS_TERMIOS_H#include <sys/termios.h>#endif#ifdef HAVE_SYS_IOCTL_H#include <sys/ioctl.h>#endif#ifdef HAVE_SIGNAL_H#include <signal.h>#endif#include <stdio.h>#include <stdlib.h>#include "ifstat.h"#ifdef HAVE_SIGACTIONstatic void _setsig(int sig, RETSIGTYPE (*handler)(int)) {  struct sigaction sa;   memset(&sa, 0, sizeof(struct sigaction));  sa.sa_handler = handler;  sigemptyset(&sa.sa_mask);  sa.sa_flags = SA_RESTART;  sigaction(sig, &sa, NULL);}#define SIGNAL(si, handler) _setsig((si), (handler))#define RESIGNAL(si, handler)#else#define SIGNAL(si, handler) signal((si), (handler))#define RESIGNAL(si, handler) signal((si), (handler))#endif#ifndef HAVE_SNPRINTF/* bogus implementation with vsprintf */#ifdef HAVE_STDARG_H#include <stdarg.h>#endif#include <assert.h>int snprintf(char *str, size_t size, const char *format, ...){  int res;  va_list ap;    va_start(ap, format);  res = vsprintf(str, format, ap);  va_end(ap);  assert(res + 1 <= size);  return res;}#endif#ifdef WIN32/* native win32 misses gettimeofday and its select doesn't behave   the same way, so replace them by bogus versions that work   as expected here */#include <windows.h>#include <sys/timeb.h>static int win_select(int nfds, void *fdr, void *fdw, void *fde,		      struct timeval *tv) {  Sleep(tv->tv_sec * 1000 + tv->tv_usec / 1000);  return 0;}#define select win_selectstatic int win_gettimeofday(struct timeval *tv, void *tz) {  struct _timeb timeb;  _ftime(&timeb);  tv->tv_sec = timeb.time;  tv->tv_usec = timeb.millitm * 1000;  return 0;}#define gettimeofday win_gettimeofday#endif/* parse interface list, using \ as escape character */static int parse_interfaces(char *string, struct ifstat_list *ifs) {  char *s, *d, *buf;  int len, escaped = 0;  if (string == NULL || (len = strlen(string)) <= 0)    return 0;  if ((buf = malloc(len + 1)) == NULL) {    ifstat_perror("malloc");    return 0;  }  d = buf;  for(s = string; *s != '\0'; s++) {    if (!escaped) {      if (*s == '\\') {	escaped = 1;	continue;      }      if (*s == ',') {	*d = '\0';	ifstat_add_interface(ifs, buf, 0);	d = buf;	continue;      }    } else      escaped = 0;    *d++ = *s;  }  *d = '\0';  if (*buf != '\0')    ifstat_add_interface(ifs, buf, 0);  free(buf);  return 1;}static void usage(int result) {  fprintf(stderr,	  "usage: %s [-a] [-l] [-z] [-n] [-v] [-h] [-t] [-i if0,if1,...]\n"	  "       [-d drv[:opt]] [-s [comm@][#]host[/nn]] [-T] [-A] [-w]\n"	  "       [-W] [-S] [-b] [-q] [delay[/delay] [count]]\n", ifstat_progname);  exit(result);}static void print_center(char *s, int len, int width) {  int ofs, i;  ofs = (width - len) / 2;  for (i = 0; i < ofs; i++)    putc(' ', stdout);  for (i = 0; i < len; i++)    putc(s[i], stdout);  for (i = 0; i < (width - (ofs + len)); i++)    putc(' ', stdout);}struct {  int cols, lines, datalines;} termsize;int _sigwinch = 0;static RETSIGTYPE update_termsize(int sig) {#ifdef TIOCGWINSZ  struct winsize ws;  if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) == 0 &&      ws.ws_row > 0 && ws.ws_col > 0) {    termsize.cols = ws.ws_col;    termsize.lines = ws.ws_row;  } else { /* defaults if unknown */    termsize.lines = 25;     termsize.cols = 80;   }#ifdef SIGWINCH  if (sig == SIGWINCH)    _sigwinch = 1;  RESIGNAL(SIGWINCH, &update_termsize);#endif#endif}int _sigcont = 0;#ifdef SIGCONTstatic RETSIGTYPE sigcont(int sig) {  _sigcont = 1;    RESIGNAL(SIGCONT, &sigcont);}#endif#define OPT_TIMESTAMP  1#define OPT_FIXEDWIDTH 2#define OPT_UNITBITS   4#define OPT_NOINDEX    8#define OPT_NONULL    16#define OPT_NOSCAN    32#define OPT_WRAP      64#define OPT_NOTITLE  128#define OPT_NOSCROLL 256#define SPACE "  "#define NUM "12345.12"#define NA  "     n/a"#define WIDTH (sizeof(NUM) - 1) * 2 + (sizeof(SPACE) - 1)#define LEN(options, namelen) (((options) & OPT_FIXEDWIDTH || (namelen) < WIDTH) ? WIDTH : (namelen))#define FMT(n) (((n) < 1e+5) ? "%8.2f" : (((n) < 1e+6) ? "%.1f" : "%.2e"))/*        eth0                  lo  KB/s in  KB/s out    KB/s in  KB/s out 14562.23  12345.25       0.00      0.00*/static void print_wrap(int options, int line) {  putc('\n', stdout);  putc((char) (((line - 1) % 26) + 65), stdout);  if (options & OPT_TIMESTAMP)    fputs("       " SPACE, stdout);}static int pos_next(int pos, int len, int options) {  int ofs = (options & OPT_TIMESTAMP) ? 8 + sizeof(SPACE) - 1 : 1;  pos += len + sizeof(SPACE) - 1;  if (options & OPT_WRAP &&  pos + ofs + len >= termsize.cols)    pos = 0;  return pos;}static void print_legend(struct ifstat_data *ptr, int options, int line) {  int len, pos;  if (line == 0) {    putc('\n', stdout);    if (options & OPT_TIMESTAMP)      fputs("HH:MM:SS" SPACE, stdout);    else if (options & OPT_WRAP)      putc(' ', stdout);  } else    print_wrap(options, line);  pos = 0;  for (; ptr != NULL; ptr = ptr->next) {    if (pos > 0)      fputs(SPACE, stdout);    len = LEN(options, ptr->namelen);    print_center((options & OPT_UNITBITS) ? " Kbps in  Kbps out" :		 " KB/s in  KB/s out", WIDTH, len);    if ((pos = pos_next(pos, len, options)) == 0 && ptr->next != NULL)      return;  }  putc('\n', stdout);}			 static void print_header(struct ifstat_list *ifs, int options) {  struct ifstat_data *ptr, *start;  int len, pos, line;  if (options & OPT_TIMESTAMP)    fputs("  Time  " SPACE, stdout);  else if (options & OPT_WRAP)    putc(' ', stdout);  pos = 0;  line = 0;  start = ifs->first;  for (ptr = ifs->first; ptr != NULL; ptr = ptr->next) {    if (pos == 0 && ptr != ifs->first) {      print_legend(start, options, line);      start = ptr;      print_wrap(options, ++line);    } else if (pos > 0)      fputs(SPACE, stdout);    len = LEN(options, ptr->namelen);    print_center(ptr->name, ptr->namelen < len ? ptr->namelen : len, len);    pos = pos_next(pos, len, options);  }  termsize.datalines = line + 1;  print_legend(start, options, line);}static void print_stats(struct ifstat_list *ifs,			struct timeval *start,			struct timeval *end,			int options) {  struct ifstat_data *ptr;  int hasindex = 1, pos = 0, len, line = 0;  char stats[WIDTH + 1];  double delay, kbin, kbout, tkbin, tkbout, scale;  struct tm *ltm;  if (options & OPT_NOSCROLL)    putc('\r', stdout);    if (options & OPT_TIMESTAMP) {    time_t t = end->tv_sec;    if ((ltm = localtime(&t)) != NULL)      fprintf(stdout, "%02d:%02d:%02d" SPACE,	      ltm->tm_hour, ltm->tm_min, ltm->tm_sec);    else      fputs("--:--:--" SPACE, stdout);  } else if (options & OPT_WRAP)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区国产视频| av一区二区三区黑人| 日韩黄色免费网站| 亚洲线精品一区二区三区 | 亚洲精品国产成人久久av盗摄| 久久久影院官网| 久久久久久久久久久久久久久99 | 欧美日韩免费一区二区三区视频| 日本伦理一区二区| 欧美午夜精品久久久| 欧美在线你懂得| 欧美三级蜜桃2在线观看| 欧美日韩国产综合久久 | 亚洲综合小说图片| 午夜视黄欧洲亚洲| 免费欧美在线视频| 国产一区中文字幕| 成人avav在线| 欧美亚洲国产一区二区三区va| 欧美写真视频网站| 日韩亚洲欧美一区二区三区| 久久久综合九色合综国产精品| 中文字幕av在线一区二区三区| 中文字幕在线观看不卡| 97精品超碰一区二区三区| 99精品热视频| 欧美三级在线视频| 2022国产精品视频| 中文字幕日韩精品一区| 亚洲超丰满肉感bbw| 六月丁香综合在线视频| 成人免费视频一区| 欧美视频中文一区二区三区在线观看| 在线不卡欧美精品一区二区三区| 精品国产三级电影在线观看| 中国av一区二区三区| 亚洲国产精品欧美一二99| 蜜桃av一区二区三区| 成人激情图片网| 欧美精品精品一区| 国产丝袜美腿一区二区三区| 亚洲蜜桃精久久久久久久| 奇米色一区二区| 97超碰欧美中文字幕| 日韩一级在线观看| 国产精品美女久久久久久2018| 亚洲国产精品久久人人爱| 精品一区二区三区久久久| 91蜜桃婷婷狠狠久久综合9色| 777亚洲妇女| 国产精品久久久久久久久动漫 | 首页国产丝袜综合| 国产精品538一区二区在线| 欧美亚一区二区| 亚洲国产精品激情在线观看| 偷拍一区二区三区| 成人开心网精品视频| 日韩女优制服丝袜电影| 亚洲欧美色一区| 国内一区二区在线| 欧美日韩国产另类不卡| 国产嫩草影院久久久久| 日韩激情av在线| 在线免费观看日韩欧美| 久久精品综合网| 免费在线观看一区二区三区| 色综合天天在线| 国产亚洲欧美色| 日韩av在线播放中文字幕| 91女神在线视频| 国产日韩欧美亚洲| 美女视频一区二区| 欧美日韩在线免费视频| 中文字幕综合网| 国产精品羞羞答答xxdd| 这里只有精品电影| 亚洲午夜一二三区视频| 成人免费精品视频| 久久精品在这里| 九九国产精品视频| 欧美夫妻性生活| 亚洲国产裸拍裸体视频在线观看乱了| 9i在线看片成人免费| 久久精品亚洲国产奇米99| 久久国产欧美日韩精品| 欧美精选一区二区| 亚洲国产精品一区二区www在线| 风间由美一区二区av101| 亚洲精品在线免费观看视频| 免费亚洲电影在线| 日韩一区二区中文字幕| 五月婷婷久久综合| 欧美美女一区二区三区| 亚洲一二三区视频在线观看| 在线精品视频一区二区三四| 亚洲美女免费视频| 色欧美片视频在线观看在线视频| 国产精品入口麻豆原神| 成人黄色免费短视频| 中文字幕中文乱码欧美一区二区 | 国产亚洲欧美一级| 国产风韵犹存在线视精品| 国产日韩欧美一区二区三区综合| 国产福利精品一区| 中文字幕乱码亚洲精品一区| 国产成人在线视频播放| 国产日韩成人精品| 成人午夜精品在线| 最新国产精品久久精品| 91女神在线视频| 亚洲一区在线看| 欧美精品 国产精品| 免费高清在线一区| 久久久精品黄色| yourporn久久国产精品| 亚洲男女毛片无遮挡| 色爱区综合激月婷婷| 亚洲第一搞黄网站| 日韩欧美卡一卡二| 东方欧美亚洲色图在线| 椎名由奈av一区二区三区| 欧美丝袜丝nylons| 毛片基地黄久久久久久天堂| 国产亚洲欧美一区在线观看| 99久久99久久精品免费观看| 亚洲高清免费观看高清完整版在线观看 | 夜夜精品视频一区二区| 4438亚洲最大| 国产91高潮流白浆在线麻豆 | 国产成人精品综合在线观看| 日本一区二区三区久久久久久久久不 | 久久se精品一区二区| 亚洲国产精品传媒在线观看| 91免费国产在线| 日韩精品一区第一页| 国产午夜三级一区二区三| 91色.com| 亚洲欧洲av色图| 555夜色666亚洲国产免| 美女诱惑一区二区| 中文字幕 久热精品 视频在线| 丰满白嫩尤物一区二区| 亚洲精品欧美二区三区中文字幕| 欧亚洲嫩模精品一区三区| 免费欧美日韩国产三级电影| 国产精品无码永久免费888| 精品视频资源站| 国产在线精品免费av| 一区二区三区不卡视频| 精品国产1区二区| 91福利在线看| 国产一区二区在线观看视频| 亚洲裸体在线观看| 精品嫩草影院久久| 在线免费观看不卡av| 国产激情偷乱视频一区二区三区| 一区二区三区欧美久久| 久久久久久影视| 欧美日韩成人一区二区| 成人精品鲁一区一区二区| 日韩精品久久久久久| 中文字幕一区免费在线观看| 91精品国产欧美一区二区成人| k8久久久一区二区三区| 九一九一国产精品| 丝袜美腿成人在线| 亚洲免费在线观看| 久久久久久久久久久久久夜| 56国语精品自产拍在线观看| 91老师国产黑色丝袜在线| 国产成人午夜电影网| 日韩精品视频网| 亚洲综合图片区| 中文字幕日本不卡| 久久久精品蜜桃| 欧美大白屁股肥臀xxxxxx| 欧美主播一区二区三区| 99热99精品| 国产+成+人+亚洲欧洲自线| 精品一区二区三区的国产在线播放 | 亚洲自拍偷拍图区| 国产精品每日更新在线播放网址| 精品少妇一区二区三区免费观看| 欧美日韩在线播放一区| 91麻豆免费看| 99久久精品情趣| 丰满白嫩尤物一区二区| 国产剧情一区二区三区| 久久国产剧场电影| 美女视频黄频大全不卡视频在线播放| 亚洲国产aⅴ成人精品无吗| 亚洲黄色小说网站| 亚洲丝袜自拍清纯另类| 国产精品私人影院| 国产精品免费免费| 中文字幕乱码日本亚洲一区二区| 国产网站一区二区| 久久久久久一级片| 国产丝袜美腿一区二区三区| 国产色爱av资源综合区|