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

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

?? vmstat.c

?? linux下獲取一些環(huán)境信息的代碼
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
// old: "Copyright 1994 by Henry Ware <al172@yfn.ysu.edu>. Copyleft same year."// most code copyright 2002 Albert Cahalan// // 27/05/2003 (Fabian Frederick) : Add unit conversion + interface//               	 Export proc/stat access to libproc//			 Adapt vmstat helpfile// 31/05/2003 (Fabian) : Add diskstat support (/libproc)// June 2003 (Fabian) : -S <x> -s & -s -S <x> patch// June 2003 (Fabian) : -Adding diskstat against 3.1.9, slabinfo//			 -patching 'header' in disk & slab// July 2003 (Fabian) : -Adding disk partition output//			-Adding disk table//			-Syncing help / usage#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <string.h>#include <assert.h>#include <fcntl.h>#include <limits.h>#include <termios.h>#include <unistd.h>#include <sys/types.h>#include <sys/ioctl.h>#include <sys/dir.h>#include <dirent.h>#include "proc/sysinfo.h"#include "proc/version.h"static unsigned long dataUnit=1024;static char szDataUnit [16];#define UNIT_B        1#define UNIT_k        1000#define UNIT_K        1024#define UNIT_m        1000000#define UNIT_M        1048576#define VMSTAT        0#define DISKSTAT      0x00000001#define VMSUMSTAT     0x00000002#define SLABSTAT      0x00000004#define PARTITIONSTAT 0x00000008#define DISKSUMSTAT   0x00000010static int statMode=VMSTAT;#define FALSE 0#define TRUE 1static int a_option; /* "-a" means "show active/inactive" */static unsigned sleep_time = 1;static unsigned long num_updates;static unsigned int height;   // window heightstatic unsigned int moreheaders=TRUE;/////////////////////////////////////////////////////////////////////////static void usage(void) NORETURN;static void usage(void) {  fprintf(stderr,"usage: vmstat [-V] [-n] [delay [count]]\n");  fprintf(stderr,"              -V prints version.\n");  fprintf(stderr,"              -n causes the headers not to be reprinted regularly.\n");  fprintf(stderr,"              -a print inactive/active page stats.\n");  fprintf(stderr,"              -d prints disk statistics\n");  fprintf(stderr,"              -D prints disk table\n");  fprintf(stderr,"              -p prints disk partition statistics\n");  fprintf(stderr,"              -s prints vm table\n");  fprintf(stderr,"              -m prints slabinfo\n");  fprintf(stderr,"              -S unit size\n");  fprintf(stderr,"              delay is the delay between updates in seconds. \n");  fprintf(stderr,"              unit size k:1000 K:1024 m:1000000 M:1048576 (default is K)\n");  fprintf(stderr,"              count is the number of updates.\n");  exit(EXIT_FAILURE);}/////////////////////////////////////////////////////////////////////////////#if 0// produce:  "  6  ", "123  ", "123k ", etc.static int format_1024(unsigned long long val64, char *restrict dst){  unsigned oldval;  const char suffix[] = " kmgtpe";  unsigned level = 0;  unsigned val32;  if(val64 < 1000){   // special case to avoid "6.0  " when plain "  6  " would do    val32 = val64;    return sprintf(dst,"%3u  ",val32);  }  while(val64 > 0xffffffffull){    level++;    val64 /= 1024;  }  val32 = val64;  while(val32 > 999){    level++;    oldval = val32;    val32 /= 1024;  }  if(val32 < 10){    unsigned fract = (oldval % 1024) * 10 / 1024;    return sprintf(dst, "%u.%u%c ", val32, fract, suffix[level]);  }  return sprintf(dst, "%3u%c ", val32, suffix[level]);}// produce:  "  6  ", "123  ", "123k ", etc.static int format_1000(unsigned long long val64, char *restrict dst){  unsigned oldval;  const char suffix[] = " kmgtpe";  unsigned level = 0;  unsigned val32;  if(val64 < 1000){   // special case to avoid "6.0  " when plain "  6  " would do    val32 = val64;    return sprintf(dst,"%3u  ",val32);  }  while(val64 > 0xffffffffull){    level++;    val64 /= 1000;  }  val32 = val64;  while(val32 > 999){    level++;    oldval = val32;    val32 /= 1000;  }  if(val32 < 10){    unsigned fract = (oldval % 1000) / 100;    return sprintf(dst, "%u.%u%c ", val32, fract, suffix[level]);  }  return sprintf(dst, "%3u%c ", val32, suffix[level]);}#endif////////////////////////////////////////////////////////////////////////////static void new_header(void){  printf("procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n");  printf(    "%2s %2s %6s %6s %6s %6s %4s %4s %5s %5s %4s %4s %2s %2s %2s %2s\n",    "r","b",    "swpd", "free", a_option?"inact":"buff", a_option?"active":"cache",    "si","so",    "bi","bo",    "in","cs",    "us","sy","id","wa"  );}////////////////////////////////////////////////////////////////////////////static unsigned long unitConvert(unsigned int size){ float cvSize; cvSize=(float)size/dataUnit*((statMode==SLABSTAT)?1:1024); return ((unsigned long) cvSize);}////////////////////////////////////////////////////////////////////////////static void new_format(void) {  const char format[]="%2u %2u %6lu %6lu %6lu %6lu %4u %4u %5u %5u %4u %4u %2u %2u %2u %2u\n";  unsigned int tog=0; /* toggle switch for cleaner code */  unsigned int i;  unsigned int hz = Hertz;  unsigned int running,blocked,dummy_1,dummy_2;  jiff cpu_use[2], cpu_nic[2], cpu_sys[2], cpu_idl[2], cpu_iow[2], cpu_xxx[2], cpu_yyy[2], cpu_zzz[2];  jiff duse, dsys, didl, diow, dstl, Div, divo2;  unsigned long pgpgin[2], pgpgout[2], pswpin[2], pswpout[2];  unsigned int intr[2], ctxt[2];  unsigned int sleep_half;   unsigned long kb_per_page = sysconf(_SC_PAGESIZE) / 1024ul;  int debt = 0;  // handle idle ticks running backwards  sleep_half=(sleep_time/2);  new_header();  meminfo();  getstat(cpu_use,cpu_nic,cpu_sys,cpu_idl,cpu_iow,cpu_xxx,cpu_yyy,cpu_zzz,	  pgpgin,pgpgout,pswpin,pswpout,	  intr,ctxt,	  &running,&blocked,	  &dummy_1, &dummy_2);  duse= *cpu_use + *cpu_nic;   dsys= *cpu_sys + *cpu_xxx + *cpu_yyy;  didl= *cpu_idl;  diow= *cpu_iow;  dstl= *cpu_zzz;  Div= duse+dsys+didl+diow+dstl;  divo2= Div/2UL;  printf(format,	 running, blocked,	 unitConvert(kb_swap_used), unitConvert(kb_main_free),	 unitConvert(a_option?kb_inactive:kb_main_buffers),	 unitConvert(a_option?kb_active:kb_main_cached),	 (unsigned)( (*pswpin  * unitConvert(kb_per_page) * hz + divo2) / Div ),	 (unsigned)( (*pswpout * unitConvert(kb_per_page) * hz + divo2) / Div ),	 (unsigned)( (*pgpgin                * hz + divo2) / Div ),	 (unsigned)( (*pgpgout               * hz + divo2) / Div ),	 (unsigned)( (*intr                  * hz + divo2) / Div ),	 (unsigned)( (*ctxt                  * hz + divo2) / Div ),	 (unsigned)( (100*duse                    + divo2) / Div ),	 (unsigned)( (100*dsys                    + divo2) / Div ),	 (unsigned)( (100*didl                    + divo2) / Div ),	 (unsigned)( (100*diow                    + divo2) / Div ) /* ,	 (unsigned)( (100*dstl                    + divo2) / Div ) */  );  for(i=1;i<num_updates;i++) { /* \\\\\\\\\\\\\\\\\\\\ main loop ////////////////// */    sleep(sleep_time);    if (moreheaders && ((i%height)==0)) new_header();    tog= !tog;    meminfo();    getstat(cpu_use+tog,cpu_nic+tog,cpu_sys+tog,cpu_idl+tog,cpu_iow+tog,cpu_xxx+tog,cpu_yyy+tog,cpu_zzz+tog,	  pgpgin+tog,pgpgout+tog,pswpin+tog,pswpout+tog,	  intr+tog,ctxt+tog,	  &running,&blocked,	  &dummy_1,&dummy_2);    duse= cpu_use[tog]-cpu_use[!tog] + cpu_nic[tog]-cpu_nic[!tog];    dsys= cpu_sys[tog]-cpu_sys[!tog] + cpu_xxx[tog]-cpu_xxx[!tog] + cpu_yyy[tog]-cpu_yyy[!tog];    didl= cpu_idl[tog]-cpu_idl[!tog];    diow= cpu_iow[tog]-cpu_iow[!tog];    dstl= cpu_zzz[tog]-cpu_zzz[!tog];    /* idle can run backwards for a moment -- kernel "feature" */    if(debt){      didl = (int)didl + debt;      debt = 0;    }    if( (int)didl < 0 ){      debt = (int)didl;      didl = 0;    }    Div= duse+dsys+didl+diow+dstl;    divo2= Div/2UL;    printf(format,           running, blocked,	   unitConvert(kb_swap_used),unitConvert(kb_main_free),	   unitConvert(a_option?kb_inactive:kb_main_buffers),	   unitConvert(a_option?kb_active:kb_main_cached),	   (unsigned)( ( (pswpin [tog] - pswpin [!tog])*unitConvert(kb_per_page)+sleep_half )/sleep_time ), /*si*/	   (unsigned)( ( (pswpout[tog] - pswpout[!tog])*unitConvert(kb_per_page)+sleep_half )/sleep_time ), /*so*/	   (unsigned)( (  pgpgin [tog] - pgpgin [!tog]             +sleep_half )/sleep_time ), /*bi*/	   (unsigned)( (  pgpgout[tog] - pgpgout[!tog]             +sleep_half )/sleep_time ), /*bo*/	   (unsigned)( (  intr   [tog] - intr   [!tog]             +sleep_half )/sleep_time ), /*in*/	   (unsigned)( (  ctxt   [tog] - ctxt   [!tog]             +sleep_half )/sleep_time ), /*cs*/	   (unsigned)( (100*duse+divo2)/Div ), /*us*/	   (unsigned)( (100*dsys+divo2)/Div ), /*sy*/	   (unsigned)( (100*didl+divo2)/Div ), /*id*/	   (unsigned)( (100*diow+divo2)/Div )/*, //wa	   (unsigned)( (100*dstl+divo2)/Div )  //st  */    );  }}////////////////////////////////////////////////////////////////////////////static void diskpartition_header(const char *partition_name){  printf("%-10s %10s %10s %10s %10s\n",partition_name, "reads  ", "read sectors", "writes   ", "requested writes");}////////////////////////////////////////////////////////////////////////////static int diskpartition_format(const char* partition_name){    FILE *fDiskstat;    struct disk_stat *disks;    struct partition_stat *partitions, *current_partition=NULL;    unsigned long ndisks, j, k, npartitions;    const char format[] = "%20u %10llu %10u %10u\n";    fDiskstat=fopen("/proc/diskstats","rb");    if(!fDiskstat){        fprintf(stderr, "Your kernel doesn't support diskstat. (2.5.70 or above required)\n");         exit(0);    }    fclose(fDiskstat);    ndisks=getdiskstat(&disks,&partitions);    npartitions=getpartitions_num(disks, ndisks);    for(k=0; k<npartitions; k++){       if(!strcmp(partition_name, partitions[k].partition_name)){                current_partition=&(partitions[k]);        }	    }    if(!current_partition){         return -1;    }    diskpartition_header(partition_name);    printf (format,       current_partition->reads,current_partition->reads_sectors,current_partition->writes,current_partition->requested_writes);    fflush(stdout);    free(disks);    free(partitions);    for(j=1; j<num_updates; j++){         if (moreheaders && ((j%height)==0)) diskpartition_header(partition_name);        sleep(sleep_time);        ndisks=getdiskstat(&disks,&partitions);        npartitions=getpartitions_num(disks, ndisks);	current_partition=NULL;        for(k=0; k<npartitions; k++){          if(!strcmp(partition_name, partitions[k].partition_name)){                  current_partition=&(partitions[k]);           }	        }        if(!current_partition){           return -1;        }        printf (format,        current_partition->reads,current_partition->reads_sectors,current_partition->writes,current_partition->requested_writes);        fflush(stdout);        free(disks);        free(partitions);    }    return 0;}////////////////////////////////////////////////////////////////////////////static void diskheader(void){  printf("disk- ------------reads------------ ------------writes----------- -----IO------\n");  printf("%5s %6s %6s %7s %7s %6s %6s %7s %7s %6s %6s\n",         " ", "total", "merged","sectors","ms","total","merged","sectors","ms","cur","sec");}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四区五区入口| 亚洲成在线观看| 日韩福利视频导航| 99天天综合性| 久久这里都是精品| 日韩在线a电影| 91麻豆免费看| 国产精品久久久久久久浪潮网站| 人人爽香蕉精品| 欧美日韩免费电影| 亚洲精品乱码久久久久久黑人| 国产成人在线视频网站| 日韩欧美国产三级电影视频| 亚洲综合在线第一页| 99麻豆久久久国产精品免费 | av男人天堂一区| 精品成人一区二区三区四区| 亚洲午夜羞羞片| 色婷婷狠狠综合| 亚洲色图视频免费播放| 不卡免费追剧大全电视剧网站| 久久蜜桃av一区二区天堂 | 亚洲欧美日韩国产一区二区三区| 国产成人av电影在线| 久久综合久久综合久久综合| 麻豆精品蜜桃视频网站| 91精品国产欧美日韩| 亚洲丶国产丶欧美一区二区三区| 91久久免费观看| 亚洲精品欧美综合四区| 色综合久久久久综合99| 亚洲嫩草精品久久| 91影视在线播放| 亚洲精品v日韩精品| 色婷婷久久久综合中文字幕| 亚洲乱码精品一二三四区日韩在线| 99在线热播精品免费| 亚洲天堂中文字幕| 日本二三区不卡| 亚洲线精品一区二区三区 | 国产精品一区免费视频| 久久久久久亚洲综合影院红桃| 国产一区在线看| 国产日韩精品一区二区三区| 从欧美一区二区三区| 中文乱码免费一区二区| 色综合久久中文综合久久牛| 亚洲黄色av一区| 欧美性受xxxx黑人xyx| 午夜伊人狠狠久久| 日韩欧美国产综合一区| 国产在线国偷精品产拍免费yy| 久久青草欧美一区二区三区| 成人晚上爱看视频| 中文字幕一区二区三区在线不卡| 91视视频在线观看入口直接观看www | 国产成人av自拍| 国产精品伦一区| 欧美影院一区二区三区| 婷婷中文字幕一区三区| 日韩欧美久久一区| 粉嫩久久99精品久久久久久夜| 国产精品久久久久三级| 欧美又粗又大又爽| 日韩国产精品91| 国产日韩欧美不卡| 欧洲一区二区av| 欧美aaaaaa午夜精品| 国产日韩欧美麻豆| 色噜噜久久综合| 日本成人在线视频网站| 久久精品欧美日韩| 色婷婷精品久久二区二区蜜臀av| 午夜精品一区二区三区电影天堂| 精品理论电影在线| 91在线视频网址| 天堂va蜜桃一区二区三区漫画版| 久久久久久电影| 日本韩国欧美国产| 久久国产视频网| 亚洲欧美日韩国产综合在线| 91精品国产91久久久久久一区二区| 国产成人亚洲综合a∨婷婷| 一区二区三区国产| 精品理论电影在线| 91福利视频在线| 九一九一国产精品| 亚洲男同1069视频| 欧美大黄免费观看| 91色.com| 韩国v欧美v日本v亚洲v| 亚洲精品精品亚洲| 精品久久久网站| 在线视频综合导航| 国产激情一区二区三区| 亚洲在线成人精品| 国产日韩欧美麻豆| 51久久夜色精品国产麻豆| 成人综合婷婷国产精品久久| 性做久久久久久免费观看欧美| 欧美激情一二三区| 日韩午夜在线观看视频| 91麻豆蜜桃一区二区三区| 国产一区二区免费视频| 亚洲第一主播视频| 国产精品伦理在线| 欧美精品一区二区三区在线播放 | 播五月开心婷婷综合| 日本怡春院一区二区| 亚洲欧美日韩电影| 国产亚洲一二三区| 欧美一区日本一区韩国一区| 99国产精品久久久久久久久久| 国产在线播放一区| 五月激情综合色| 亚洲伦在线观看| 国产欧美日韩不卡免费| 欧美一级视频精品观看| 欧美在线视频你懂得| 国产成人av一区二区| 精品一区二区三区香蕉蜜桃| 亚洲成a人片在线观看中文| ●精品国产综合乱码久久久久| 久久一夜天堂av一区二区三区 | 99久久99久久精品免费观看| 国产综合久久久久久鬼色| 午夜精品在线看| 亚洲一区在线看| 亚洲精品写真福利| 中文字幕欧美一| 国产精品毛片久久久久久久| 久久综合色综合88| 日韩丝袜情趣美女图片| 欧美日韩大陆一区二区| 欧美性感一类影片在线播放| 色综合天天综合在线视频| 成人午夜碰碰视频| 国产精品白丝jk黑袜喷水| 精品一区二区日韩| 久久99精品国产| 麻豆精品新av中文字幕| 日韩影院免费视频| 日日骚欧美日韩| 亚洲成在人线免费| 丝袜a∨在线一区二区三区不卡| 亚洲成人免费在线观看| 亚洲第一搞黄网站| 婷婷综合另类小说色区| 婷婷一区二区三区| 天堂av在线一区| 日韩二区在线观看| 日韩—二三区免费观看av| 日韩精品一卡二卡三卡四卡无卡| 亚洲成a人片在线观看中文| 五月婷婷综合激情| 日韩成人精品在线观看| 蜜臀精品久久久久久蜜臀| 久久精品久久精品| 国产剧情在线观看一区二区| 国产99一区视频免费| 成人网页在线观看| 色综合视频一区二区三区高清| 色视频成人在线观看免| 色狠狠一区二区| 在线观看av不卡| 欧美区一区二区三区| 91精品免费在线| 欧美成人乱码一区二区三区| 久久婷婷国产综合国色天香| 国产欧美中文在线| 国产精品对白交换视频| 亚洲综合一区二区三区| 五月开心婷婷久久| 精品中文av资源站在线观看| 丁香婷婷深情五月亚洲| 97久久精品人人做人人爽| 欧美视频一区二| 日韩天堂在线观看| 国产清纯白嫩初高生在线观看91| 一区精品在线播放| 午夜电影网亚洲视频| 久热成人在线视频| 北条麻妃国产九九精品视频| 在线观看不卡一区| 精品日韩在线观看| 国产精品国产成人国产三级| 一区二区高清免费观看影视大全| 天堂久久久久va久久久久| 国产精品一二三四| 在线影院国内精品| 欧美大片免费久久精品三p| 国产精品国产三级国产普通话三级| 一区二区三区免费| 极品少妇xxxx精品少妇偷拍 | 久久99精品国产麻豆婷婷洗澡| 国产成人午夜片在线观看高清观看| 91美女视频网站| 日韩一卡二卡三卡国产欧美| 欧美激情中文不卡| 天天综合网 天天综合色|