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

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

?? vmstat.c

?? linux下獲取一些環境信息的代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
////////////////////////////////////////////////////////////////////////////static void diskformat(void){  FILE *fDiskstat;  struct disk_stat *disks;  struct partition_stat *partitions;  unsigned long ndisks,i,j,k;  const char format[]="%-5s %6u %6u %7llu %7u %6u %6u %7llu %7u %6u %6u\n";  if ((fDiskstat=fopen("/proc/diskstats", "rb"))){    fclose(fDiskstat);    ndisks=getdiskstat(&disks,&partitions);    for(k=0; k<ndisks; k++){      if (moreheaders && ((k%height)==0)) diskheader();      printf(format,        disks[k].disk_name,        disks[k].reads,        disks[k].merged_reads,        disks[k].reads_sectors,        disks[k].milli_reading,        disks[k].writes,        disks[k].merged_writes,        disks[k].written_sectors,        disks[k].milli_writing,        disks[k].inprogress_IO?disks[k].inprogress_IO/1000:0,        disks[k].milli_spent_IO?disks[k].milli_spent_IO/1000:0/*,        disks[i].weighted_milli_spent_IO/1000*/      );      fflush(stdout);    }    free(disks);    free(partitions);    for(j=1; j<num_updates; j++){       sleep(sleep_time);      ndisks=getdiskstat(&disks,&partitions);      for(i=0; i<ndisks; i++,k++){        if (moreheaders && ((k%height)==0)) diskheader();        printf(format,          disks[i].disk_name,          disks[i].reads,          disks[i].merged_reads,          disks[i].reads_sectors,          disks[i].milli_reading,          disks[i].writes,          disks[i].merged_writes,          disks[i].written_sectors,          disks[i].milli_writing,          disks[i].inprogress_IO?disks[i].inprogress_IO/1000:0,          disks[i].milli_spent_IO?disks[i].milli_spent_IO/1000:0/*,          disks[i].weighted_milli_spent_IO/1000*/        );        fflush(stdout);      }      free(disks);      free(partitions);    }  }else{    fprintf(stderr, "Your kernel doesn't support diskstat (2.5.70 or above required)\n");     exit(0);  } }////////////////////////////////////////////////////////////////////////////static void slabheader(void){  printf("%-24s %6s %6s %6s %6s\n","Cache","Num", "Total", "Size", "Pages");}////////////////////////////////////////////////////////////////////////////static void slabformat (void){  FILE *fSlab;  struct slab_cache *slabs;  unsigned long nSlab,i,j,k;  const char format[]="%-24s %6u %6u %6u %6u\n";  fSlab=fopen("/proc/slabinfo", "rb");  if(!fSlab){    fprintf(stderr, "Your kernel doesn't support slabinfo.\n");        return;  }  nSlab = getslabinfo(&slabs);  for(k=0; k<nSlab; k++){    if (moreheaders && ((k%height)==0)) slabheader();    printf(format,      slabs[k].name,      slabs[k].active_objs,      slabs[k].num_objs,      slabs[k].objsize,      slabs[k].objperslab    );  }  free(slabs);  for(j=1,k=1; j<num_updates; j++) {     sleep(sleep_time);    nSlab = getslabinfo(&slabs);    for(i=0; i<nSlab; i++,k++){      if (moreheaders && ((k%height)==0)) slabheader();      printf(format,        slabs[i].name,        slabs[i].active_objs,        slabs[i].num_objs,        slabs[i].objsize,        slabs[i].objperslab      );    }    free(slabs);  }}////////////////////////////////////////////////////////////////////////////static void disksum_format(void) {  FILE *fDiskstat;  struct disk_stat *disks;  struct partition_stat *partitions;  int ndisks, i;  unsigned long reads, merged_reads, read_sectors, milli_reading, writes,                merged_writes, written_sectors, milli_writing, inprogress_IO,                milli_spent_IO, weighted_milli_spent_IO;  reads=merged_reads=read_sectors=milli_reading=writes=merged_writes= \  written_sectors=milli_writing=inprogress_IO=milli_spent_IO= \  weighted_milli_spent_IO=0;  if ((fDiskstat=fopen("/proc/diskstats", "rb"))){    fclose(fDiskstat);    ndisks=getdiskstat(&disks, &partitions);    printf("%13d disks \n", ndisks);    printf("%13d partitions \n", getpartitions_num(disks, ndisks));    for(i=0; i<ndisks; i++){         reads+=disks[i].reads;         merged_reads+=disks[i].merged_reads;         read_sectors+=disks[i].reads_sectors;         milli_reading+=disks[i].milli_reading;         writes+=disks[i].writes;         merged_writes+=disks[i].merged_writes;         written_sectors+=disks[i].written_sectors;         milli_writing+=disks[i].milli_writing;         inprogress_IO+=disks[i].inprogress_IO?disks[i].inprogress_IO/1000:0;         milli_spent_IO+=disks[i].milli_spent_IO?disks[i].milli_spent_IO/1000:0;      }    printf("%13lu total reads\n",reads);    printf("%13lu merged reads\n",merged_reads);    printf("%13lu read sectors\n",read_sectors);    printf("%13lu milli reading\n",milli_reading);    printf("%13lu writes\n",writes);    printf("%13lu merged writes\n",merged_writes);    printf("%13lu written sectors\n",written_sectors);    printf("%13lu milli writing\n",milli_writing);    printf("%13lu inprogress IO\n",inprogress_IO);    printf("%13lu milli spent IO\n",milli_spent_IO);    free(disks);    free(partitions);  }}////////////////////////////////////////////////////////////////////////////static void sum_format(void) {  unsigned int running, blocked, btime, processes;  jiff cpu_use, cpu_nic, cpu_sys, cpu_idl, cpu_iow, cpu_xxx, cpu_yyy, cpu_zzz;  unsigned long pgpgin, pgpgout, pswpin, pswpout;  unsigned int intr, ctxt;  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,	  &btime, &processes);  printf("%13lu %s total memory\n", unitConvert(kb_main_total),szDataUnit);  printf("%13lu %s used memory\n", unitConvert(kb_main_used),szDataUnit);  printf("%13lu %s active memory\n", unitConvert(kb_active),szDataUnit);  printf("%13lu %s inactive memory\n", unitConvert(kb_inactive),szDataUnit);  printf("%13lu %s free memory\n", unitConvert(kb_main_free),szDataUnit);  printf("%13lu %s buffer memory\n", unitConvert(kb_main_buffers),szDataUnit);  printf("%13lu %s swap cache\n", unitConvert(kb_main_cached),szDataUnit);  printf("%13lu %s total swap\n", unitConvert(kb_swap_total),szDataUnit);  printf("%13lu %s used swap\n", unitConvert(kb_swap_used),szDataUnit);  printf("%13lu %s free swap\n", unitConvert(kb_swap_free),szDataUnit);  printf("%13Lu non-nice user cpu ticks\n", cpu_use);  printf("%13Lu nice user cpu ticks\n", cpu_nic);  printf("%13Lu system cpu ticks\n", cpu_sys);  printf("%13Lu idle cpu ticks\n", cpu_idl);  printf("%13Lu IO-wait cpu ticks\n", cpu_iow);  printf("%13Lu IRQ cpu ticks\n", cpu_xxx);  printf("%13Lu softirq cpu ticks\n", cpu_yyy);  printf("%13Lu stolen cpu ticks\n", cpu_zzz);  printf("%13lu pages paged in\n", pgpgin);  printf("%13lu pages paged out\n", pgpgout);  printf("%13lu pages swapped in\n", pswpin);  printf("%13lu pages swapped out\n", pswpout);  printf("%13u interrupts\n", intr);  printf("%13u CPU context switches\n", ctxt);  printf("%13u boot time\n", btime);  printf("%13u forks\n", processes);}////////////////////////////////////////////////////////////////////////////static void fork_format(void) {  unsigned int running, blocked, btime, processes;  jiff cpu_use, cpu_nic, cpu_sys, cpu_idl, cpu_iow, cpu_xxx, cpu_yyy, cpu_zzz;  unsigned long pgpgin, pgpgout, pswpin, pswpout;  unsigned int intr, ctxt;  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,	  &btime, &processes);  printf("%13u forks\n", processes);}////////////////////////////////////////////////////////////////////////////static int winhi(void) {    struct winsize win;    int rows = 24;     if (ioctl(1, TIOCGWINSZ, &win) != -1 && win.ws_row > 0)      rows = win.ws_row;     return rows;}////////////////////////////////////////////////////////////////////////////int main(int argc, char *argv[]) {  char partition[16];  argc=0; /* redefined as number of integer arguments */  for (argv++;*argv;argv++) {    if ('-' ==(**argv)) {      switch (*(++(*argv))) {          case 'V':	display_version();	exit(0);      case 'd':	statMode |= DISKSTAT;	break;      case 'a':	/* active/inactive mode */	a_option=1;        break;      case 'f':        // FIXME: check for conflicting args	fork_format();        exit(0);      case 'm':        statMode |= SLABSTAT; 		break;      case 'D':        statMode |= DISKSUMSTAT; 		break;      case 'n':	/* print only one header */	moreheaders=FALSE;        break;      case 'p':        statMode |= PARTITIONSTAT;	if (argv[1]){	  char *cp = *++argv;	  if(!memcmp(cp,"/dev/",5)) cp += 5;	  snprintf(partition, sizeof partition, "%s", cp);	}else{	  fprintf(stderr, "-p requires an argument\n");          exit(EXIT_FAILURE);	}        break;      case 'S':	if (argv[1]){	      ++argv;	 	if (!strcmp(*argv, "k")) dataUnit=UNIT_k;	 	else if (!strcmp(*argv, "K")) dataUnit=UNIT_K;	 	else if (!strcmp(*argv, "m")) dataUnit=UNIT_m;	 	else if (!strcmp(*argv, "M")) dataUnit=UNIT_M;		else {fprintf(stderr, "-S requires k, K, m or M (default is kb)\n");		     exit(EXIT_FAILURE);		}		strcpy(szDataUnit, *argv);	 }else {fprintf(stderr, "-S requires an argument\n");		exit(EXIT_FAILURE);	 }	break;      case 's':        statMode |= VMSUMSTAT; 		break;      default:	/* no other aguments defined yet. */	usage();      }   }else{      argc++;      switch (argc) {      case 1:        if ((sleep_time = atoi(*argv)) == 0)         usage();       num_updates = ULONG_MAX;       break;      case 2:        num_updates = atol(*argv);       break;      default:       usage();      } /* switch */  }}  if (moreheaders) {      int tmp=winhi()-3;      height=((tmp>0)?tmp:22);  }      setlinebuf(stdout);  switch(statMode){	case(VMSTAT):        new_format();			     break;	case(VMSUMSTAT):     sum_format();			     break;	case(DISKSTAT):      diskformat();			     break;	case(PARTITIONSTAT): if(diskpartition_format(partition)==-1)                                  printf("Partition was not found\n");			     break;		case(SLABSTAT):      slabformat();			     break;	case(DISKSUMSTAT):   disksum_format();  			     break;		default:	     usage();			     break;  }  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩女优av电影| 中文字幕综合网| 91色.com| 久久精品国产免费| 国产精品传媒在线| 欧美一区二区三区公司| 91在线高清观看| 国产一区二区日韩精品| 婷婷夜色潮精品综合在线| 国产精品国产三级国产aⅴ中文| 91精品视频网| 欧美亚洲动漫制服丝袜| www.欧美色图| 国产在线不卡一卡二卡三卡四卡| 亚洲风情在线资源站| 国产清纯白嫩初高生在线观看91 | 色av成人天堂桃色av| 国产伦精品一区二区三区免费迷 | 在线观看亚洲一区| 成人18视频在线播放| 韩国精品在线观看| 麻豆精品一二三| 亚洲成人综合网站| 亚洲国产成人av网| 一区二区三区四区在线播放| 亚洲色图色小说| 国产精品高潮久久久久无| 久久综合九色综合久久久精品综合| 在线播放亚洲一区| 欧美午夜精品电影| 欧美性大战久久久久久久| 色婷婷综合激情| 99re热视频精品| av不卡一区二区三区| 不卡大黄网站免费看| 粉嫩av亚洲一区二区图片| 国产成人免费视频一区| 国产成人三级在线观看| 国产一区二区不卡在线| 激情欧美一区二区三区在线观看| 久久精品99久久久| 蜜臀久久久99精品久久久久久| 天堂av在线一区| 日韩国产高清在线| 日本v片在线高清不卡在线观看| 五月综合激情网| 日韩精品久久理论片| 日韩和欧美一区二区三区| 婷婷六月综合网| 蜜桃视频一区二区三区| 精品一区二区三区影院在线午夜| 久久99精品国产麻豆婷婷| 国产在线精品一区二区三区不卡| 国产制服丝袜一区| 粉嫩av一区二区三区| 91丨九色丨蝌蚪丨老版| 91免费看视频| 欧美日韩精品三区| 日韩欧美自拍偷拍| 国产欧美一区二区精品婷婷 | 国产精品二三区| 亚洲视频一区二区在线| 亚洲国产中文字幕在线视频综合| 亚洲r级在线视频| 久久99精品国产麻豆婷婷| 国产精品一区在线| 99re8在线精品视频免费播放| 在线欧美日韩国产| 欧美一区二区三区不卡| 久久久精品日韩欧美| 综合av第一页| 丝瓜av网站精品一区二区| 狠狠色综合色综合网络| 99综合电影在线视频| 欧美日韩一级片在线观看| 久久婷婷综合激情| 亚洲精品国产品国语在线app| 国产精品一区二区在线播放| 一本大道久久a久久综合| 69堂成人精品免费视频| 欧美激情在线看| 亚洲成人免费电影| 国产精品影视在线观看| 欧美天堂亚洲电影院在线播放| 精品日本一线二线三线不卡| 国产精品理论在线观看| 日韩电影免费在线看| 国产成人av自拍| 欧美日韩在线观看一区二区| 久久综合狠狠综合久久激情| 亚洲欧美日韩系列| 狠狠色狠狠色合久久伊人| 色婷婷久久久综合中文字幕| 日韩精品中文字幕在线一区| 自拍偷拍国产亚洲| 国产中文字幕一区| 7777精品伊人久久久大香线蕉最新版| 久久久99久久| 日本伊人色综合网| 91原创在线视频| 久久久蜜桃精品| 日韩国产精品久久久久久亚洲| 92国产精品观看| 国产欧美视频一区二区三区| 日本欧美一区二区在线观看| 91亚洲精品久久久蜜桃| 久久久久9999亚洲精品| 日本女优在线视频一区二区| 色香色香欲天天天影视综合网| 久久久精品人体av艺术| 美日韩一区二区| 欧美三级视频在线播放| 亚洲精品欧美专区| 成人午夜看片网址| 久久精品视频网| 蜜臀久久99精品久久久画质超高清| 色天天综合色天天久久| 国产精品家庭影院| 成人午夜av电影| 久久九九99视频| 国产一区二区精品久久91| 日韩美女在线视频| 蜜桃av一区二区三区电影| 欧美电影一区二区三区| 亚洲图片自拍偷拍| 色婷婷av一区二区| 一区二区三区波多野结衣在线观看 | 91久久精品国产91性色tv| 国产精品福利一区| av电影一区二区| 国产精品天干天干在观线| 国产精品2024| 久久精品一区四区| 国产精一区二区三区| 久久免费国产精品 | 欧美色综合久久| 一区二区三区国产| 欧美色男人天堂| 亚洲国产精品一区二区久久恐怖片 | 国内精品伊人久久久久影院对白| 在线不卡免费av| 日韩黄色免费电影| 欧美成人性战久久| 九九九精品视频| 久久精品男人天堂av| 成人午夜免费视频| 亚洲美女电影在线| 欧美日韩在线一区二区| 日韩精品一二三| 欧美成人一区二区三区片免费| 久久国产精品一区二区| wwwwww.欧美系列| 成人app在线观看| 夜夜精品浪潮av一区二区三区| 欧美日韩一本到| 理论片日本一区| 久久精品夜色噜噜亚洲aⅴ| av网站一区二区三区| 夜夜嗨av一区二区三区四季av | 中文字幕中文字幕在线一区| 91在线无精精品入口| 亚洲3atv精品一区二区三区| 91精品综合久久久久久| 国内不卡的二区三区中文字幕| 国产欧美日产一区| 色综合天天综合网天天看片| 午夜久久久久久久久久一区二区| 日韩三级精品电影久久久 | 国产激情一区二区三区四区| 国产精品久久久久久亚洲毛片| 欧美性做爰猛烈叫床潮| 精品一区二区三区在线播放视频 | 免费亚洲电影在线| 久久亚洲精华国产精华液 | 亚洲午夜国产一区99re久久| 日韩一区二区三区免费看 | 9i在线看片成人免费| 日韩精品五月天| 国产三级一区二区三区| 在线影视一区二区三区| 久草精品在线观看| 亚洲精选一二三| 日韩一级高清毛片| www.激情成人| 强制捆绑调教一区二区| 中文字幕一区二区在线观看| 欧美久久久久久久久| 成人黄动漫网站免费app| 丝袜诱惑制服诱惑色一区在线观看| 国产日产欧美精品一区二区三区| 欧美亚洲一区二区在线观看| 国产激情一区二区三区四区 | 一区二区三区在线免费视频| 精品久久久久久久久久久久久久久| 不卡一区二区三区四区| 久久99蜜桃精品| 亚洲超碰精品一区二区| 中文字幕av免费专区久久| 欧美不卡在线视频| 欧美日韩一区二区三区四区五区|