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

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

?? sysinfo.c

?? linux下獲取一些環(huán)境信息的代碼
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
    kb_low_free  = kb_main_free;  }  if(kb_inactive==~0UL){    kb_inactive = kb_inact_dirty + kb_inact_clean + kb_inact_laundry;  }  kb_swap_used = kb_swap_total - kb_swap_free;  kb_main_used = kb_main_total - kb_main_free;}/*****************************************************************//* read /proc/vminfo only for 2.5.41 and above */typedef struct vm_table_struct {  const char *name;     /* VM statistic name */  unsigned long *slot;       /* slot in return struct */} vm_table_struct;static int compare_vm_table_structs(const void *a, const void *b){  return strcmp(((const vm_table_struct*)a)->name,((const vm_table_struct*)b)->name);}// see include/linux/page-flags.h and mm/page_alloc.cunsigned long vm_nr_dirty;           // dirty writable pagesunsigned long vm_nr_writeback;       // pages under writebackunsigned long vm_nr_pagecache;       // pages in pagecache -- gone in 2.5.66+ kernelsunsigned long vm_nr_page_table_pages;// pages used for pagetablesunsigned long vm_nr_reverse_maps;    // includes PageDirectunsigned long vm_nr_mapped;          // mapped into pagetablesunsigned long vm_nr_slab;            // in slabunsigned long vm_pgpgin;             // kB disk reads  (same as 1st num on /proc/stat page line)unsigned long vm_pgpgout;            // kB disk writes (same as 2nd num on /proc/stat page line)unsigned long vm_pswpin;             // swap reads     (same as 1st num on /proc/stat swap line)unsigned long vm_pswpout;            // swap writes    (same as 2nd num on /proc/stat swap line)unsigned long vm_pgalloc;            // page allocationsunsigned long vm_pgfree;             // page freeingsunsigned long vm_pgactivate;         // pages moved inactive -> activeunsigned long vm_pgdeactivate;       // pages moved active -> inactiveunsigned long vm_pgfault;           // total faults (major+minor)unsigned long vm_pgmajfault;       // major faultsunsigned long vm_pgscan;          // pages scanned by page reclaimunsigned long vm_pgrefill;       // inspected by refill_inactive_zoneunsigned long vm_pgsteal;       // total pages reclaimedunsigned long vm_kswapd_steal; // pages reclaimed by kswapd// next 3 as defined by the 2.5.52 kernelunsigned long vm_pageoutrun;  // times kswapd ran page reclaimunsigned long vm_allocstall; // times a page allocator ran direct reclaimunsigned long vm_pgrotated; // pages rotated to the tail of the LRU for immediate reclaim// seen on a 2.6.8-rc1 kernel, apparently replacing old fieldsstatic unsigned long vm_pgalloc_dma;          // static unsigned long vm_pgalloc_high;         // static unsigned long vm_pgalloc_normal;       // static unsigned long vm_pgrefill_dma;         // static unsigned long vm_pgrefill_high;        // static unsigned long vm_pgrefill_normal;      // static unsigned long vm_pgscan_direct_dma;    // static unsigned long vm_pgscan_direct_high;   // static unsigned long vm_pgscan_direct_normal; // static unsigned long vm_pgscan_kswapd_dma;    // static unsigned long vm_pgscan_kswapd_high;   // static unsigned long vm_pgscan_kswapd_normal; // static unsigned long vm_pgsteal_dma;          // static unsigned long vm_pgsteal_high;         // static unsigned long vm_pgsteal_normal;       // // seen on a 2.6.8-rc1 kernelstatic unsigned long vm_kswapd_inodesteal;    //static unsigned long vm_nr_unstable;          //static unsigned long vm_pginodesteal;         //static unsigned long vm_slabs_scanned;        //void vminfo(void){  char namebuf[16]; /* big enough to hold any row name */  vm_table_struct findme = { namebuf, NULL};  vm_table_struct *found;  char *head;  char *tail;  static const vm_table_struct vm_table[] = {  {"allocstall",          &vm_allocstall},  {"kswapd_inodesteal",   &vm_kswapd_inodesteal},  {"kswapd_steal",        &vm_kswapd_steal},  {"nr_dirty",            &vm_nr_dirty},           // page version of meminfo Dirty  {"nr_mapped",           &vm_nr_mapped},          // page version of meminfo Mapped  {"nr_page_table_pages", &vm_nr_page_table_pages},// same as meminfo PageTables  {"nr_pagecache",        &vm_nr_pagecache},       // gone in 2.5.66+ kernels  {"nr_reverse_maps",     &vm_nr_reverse_maps},    // page version of meminfo ReverseMaps GONE  {"nr_slab",             &vm_nr_slab},            // page version of meminfo Slab  {"nr_unstable",         &vm_nr_unstable},  {"nr_writeback",        &vm_nr_writeback},       // page version of meminfo Writeback  {"pageoutrun",          &vm_pageoutrun},  {"pgactivate",          &vm_pgactivate},  {"pgalloc",             &vm_pgalloc},  // GONE (now separate dma,high,normal)  {"pgalloc_dma",         &vm_pgalloc_dma},  {"pgalloc_high",        &vm_pgalloc_high},  {"pgalloc_normal",      &vm_pgalloc_normal},  {"pgdeactivate",        &vm_pgdeactivate},  {"pgfault",             &vm_pgfault},  {"pgfree",              &vm_pgfree},  {"pginodesteal",        &vm_pginodesteal},  {"pgmajfault",          &vm_pgmajfault},  {"pgpgin",              &vm_pgpgin},     // important  {"pgpgout",             &vm_pgpgout},     // important  {"pgrefill",            &vm_pgrefill},  // GONE (now separate dma,high,normal)  {"pgrefill_dma",        &vm_pgrefill_dma},  {"pgrefill_high",       &vm_pgrefill_high},  {"pgrefill_normal",     &vm_pgrefill_normal},  {"pgrotated",           &vm_pgrotated},  {"pgscan",              &vm_pgscan},  // GONE (now separate direct,kswapd and dma,high,normal)  {"pgscan_direct_dma",   &vm_pgscan_direct_dma},  {"pgscan_direct_high",  &vm_pgscan_direct_high},  {"pgscan_direct_normal",&vm_pgscan_direct_normal},  {"pgscan_kswapd_dma",   &vm_pgscan_kswapd_dma},  {"pgscan_kswapd_high",  &vm_pgscan_kswapd_high},  {"pgscan_kswapd_normal",&vm_pgscan_kswapd_normal},  {"pgsteal",             &vm_pgsteal},  // GONE (now separate dma,high,normal)  {"pgsteal_dma",         &vm_pgsteal_dma},  {"pgsteal_high",        &vm_pgsteal_high},  {"pgsteal_normal",      &vm_pgsteal_normal},  {"pswpin",              &vm_pswpin},     // important  {"pswpout",             &vm_pswpout},     // important  {"slabs_scanned",       &vm_slabs_scanned},  };  const int vm_table_count = sizeof(vm_table)/sizeof(vm_table_struct);  vm_pgalloc = 0;  vm_pgrefill = 0;  vm_pgscan = 0;  vm_pgsteal = 0;  FILE_TO_BUF(VMINFO_FILE,vminfo_fd);  head = buf;  for(;;){    tail = strchr(head, ' ');    if(!tail) break;    *tail = '\0';    if(strlen(head) >= sizeof(namebuf)){      head = tail+1;      goto nextline;    }    strcpy(namebuf,head);    found = bsearch(&findme, vm_table, vm_table_count,        sizeof(vm_table_struct), compare_vm_table_structs    );    head = tail+1;    if(!found) goto nextline;    *(found->slot) = strtoul(head,&tail,10);nextline://if(found) fprintf(stderr,"%s=%d\n",found->name,*(found->slot));//else      fprintf(stderr,"%s not found\n",findme.name);    tail = strchr(head, '\n');    if(!tail) break;    head = tail+1;  }  if(!vm_pgalloc)    vm_pgalloc  = vm_pgalloc_dma + vm_pgalloc_high + vm_pgalloc_normal;  if(!vm_pgrefill)    vm_pgrefill = vm_pgrefill_dma + vm_pgrefill_high + vm_pgrefill_normal;  if(!vm_pgscan)    vm_pgscan   = vm_pgscan_direct_dma + vm_pgscan_direct_high + vm_pgscan_direct_normal                + vm_pgscan_kswapd_dma + vm_pgscan_kswapd_high + vm_pgscan_kswapd_normal;  if(!vm_pgsteal)    vm_pgsteal  = vm_pgsteal_dma + vm_pgsteal_high + vm_pgsteal_normal;}///////////////////////////////////////////////////////////////////////// based on Fabian Frederick's /proc/diskstats parserunsigned int getpartitions_num(struct disk_stat *disks, int ndisks){  int i=0;  int partitions=0;  for (i=0;i<ndisks;i++){	partitions+=disks[i].partitions;  }  return partitions;}/////////////////////////////////////////////////////////////////////////////unsigned int getdiskstat(struct disk_stat **disks, struct partition_stat **partitions){  FILE* fd;  int cDisk = 0;  int cPartition = 0;  int fields;  unsigned dummy;  *disks = NULL;  *partitions = NULL;  buff[BUFFSIZE-1] = 0;   fd = fopen("/proc/diskstats", "rb");  if(!fd) crash("/proc/diskstats");  for (;;) {    if (!fgets(buff,BUFFSIZE-1,fd)){      fclose(fd);      break;    }    fields = sscanf(buff, " %*d %*d %*s %*u %*u %*u %*u %*u %*u %*u %*u %*u %*u %u", &dummy);    if (fields == 1){      (*disks) = realloc(*disks, (cDisk+1)*sizeof(struct disk_stat));      sscanf(buff,  "   %*d    %*d %15s %u %u %llu %u %u %u %llu %u %u %u %u",        //&disk_major,        //&disk_minor,        (*disks)[cDisk].disk_name,        &(*disks)[cDisk].reads,        &(*disks)[cDisk].merged_reads,        &(*disks)[cDisk].reads_sectors,        &(*disks)[cDisk].milli_reading,        &(*disks)[cDisk].writes,        &(*disks)[cDisk].merged_writes,        &(*disks)[cDisk].written_sectors,        &(*disks)[cDisk].milli_writing,        &(*disks)[cDisk].inprogress_IO,        &(*disks)[cDisk].milli_spent_IO,        &(*disks)[cDisk].weighted_milli_spent_IO      );        (*disks)[cDisk].partitions=0;      cDisk++;    }else{      (*partitions) = realloc(*partitions, (cPartition+1)*sizeof(struct partition_stat));      fflush(stdout);      sscanf(buff,  "   %*d    %*d %15s %u %llu %u %u",        //&part_major,        //&part_minor,        (*partitions)[cPartition].partition_name,        &(*partitions)[cPartition].reads,        &(*partitions)[cPartition].reads_sectors,        &(*partitions)[cPartition].writes,        &(*partitions)[cPartition].requested_writes      );      (*partitions)[cPartition++].parent_disk = cDisk-1;      (*disks)[cDisk-1].partitions++;	    }  }  return cDisk;}/////////////////////////////////////////////////////////////////////////////// based on Fabian Frederick's /proc/slabinfo parserunsigned int getslabinfo (struct slab_cache **slab){  FILE* fd;  int cSlab = 0;  buff[BUFFSIZE-1] = 0;   *slab = NULL;  fd = fopen("/proc/slabinfo", "rb");  if(!fd) crash("/proc/slabinfo");  while (fgets(buff,BUFFSIZE-1,fd)){    if(!memcmp("slabinfo - version:",buff,19)) continue; // skip header    if(*buff == '#')                           continue; // skip comments    (*slab) = realloc(*slab, (cSlab+1)*sizeof(struct slab_cache));    sscanf(buff,  "%47s %u %u %u %u",  // allow 47; max seen is 24      (*slab)[cSlab].name,      &(*slab)[cSlab].active_objs,      &(*slab)[cSlab].num_objs,      &(*slab)[cSlab].objsize,      &(*slab)[cSlab].objperslab    ) ;    cSlab++;  }  fclose(fd);  return cSlab;}///////////////////////////////////////////////////////////////////////////unsigned get_pid_digits(void){  char pidbuf[24];  char *endp;  long rc;  int fd;  static unsigned ret;  if(ret) goto out;  ret = 5;  fd = open("/proc/sys/kernel/pid_max", O_RDONLY);  if(fd==-1) goto out;  rc = read(fd, pidbuf, sizeof pidbuf);  close(fd);  if(rc<3) goto out;  pidbuf[rc] = '\0';  rc = strtol(pidbuf,&endp,10);  if(rc<42) goto out;  if(*endp && *endp!='\n') goto out;  rc--;  // the pid_max value is really the max PID plus 1  ret = 0;  while(rc){    rc /= 10;    ret++;  }out:  return ret;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产sm最大网站| 日韩欧美在线综合网| 91精品国产手机| 久久精品夜色噜噜亚洲a∨| 亚洲乱码中文字幕综合| 久久不见久久见免费视频1| 91看片淫黄大片一级在线观看| 欧美一区二区在线不卡| 一区二区在线免费| 一本色道a无线码一区v| 狂野欧美性猛交blacked| 伦理电影国产精品| 欧美日韩精品免费观看视频| 国产精品―色哟哟| 国产露脸91国语对白| 欧美色综合久久| 亚洲男人的天堂在线aⅴ视频| 国产精品一线二线三线精华| 日韩一区二区三区在线| 亚洲综合免费观看高清完整版在线 | 欧美大片国产精品| 亚洲一线二线三线视频| 91香蕉视频mp4| 国产精品网站在线播放| 成人午夜电影小说| 久久久蜜桃精品| 国产一区视频导航| 日韩欧美一级二级| 麻豆精品视频在线观看| 91精品中文字幕一区二区三区| 亚洲一区二区视频在线观看| 日本国产一区二区| 一区二区三区国产精华| 色偷偷成人一区二区三区91| 亚洲精品久久久久久国产精华液| 99在线精品一区二区三区| 国产精品美女久久久久久久网站| 岛国一区二区在线观看| 亚洲欧美一区二区视频| 99国产精品久久| 亚洲亚洲人成综合网络| 欧美日韩国产成人在线免费| 图片区小说区区亚洲影院| 欧美图区在线视频| 美女久久久精品| 精品福利一二区| 成人免费毛片高清视频| 中文字幕在线不卡国产视频| 一本大道久久a久久综合婷婷 | 日韩国产精品久久| 日韩视频永久免费| 国产91丝袜在线播放九色| 亚洲品质自拍视频网站| 欧美美女一区二区在线观看| 日本不卡视频在线| 国产欧美视频在线观看| 色综合久久久久综合| 亚洲h在线观看| 久久久久久久久久美女| 91亚洲永久精品| 免费成人小视频| 中文字幕一区二区三区乱码在线| 91国偷自产一区二区使用方法| 日韩不卡免费视频| 欧美极品xxx| 5566中文字幕一区二区电影| 极品尤物av久久免费看| 亚洲少妇30p| 日韩精品专区在线影院重磅| 成人av影院在线| 免费观看一级特黄欧美大片| 中文av一区二区| 91精品国产综合久久精品app| 国产精品白丝jk白祙喷水网站| 亚洲午夜av在线| 中文幕一区二区三区久久蜜桃| 欧美日韩精品一区二区三区四区| 国产成人激情av| 日韩精品免费视频人成| 亚洲色图一区二区| 国产亚洲欧美色| 91精品国产全国免费观看| 91在线免费视频观看| 国产一区二区三区免费观看| 一区二区久久久久| 国产精品麻豆一区二区| 日韩欧美视频一区| 欧美性猛交xxxx黑人交| 国产 日韩 欧美大片| 麻豆91在线观看| 亚洲不卡在线观看| 中文字幕一区二区三区乱码在线| 精品国产欧美一区二区| 欧美麻豆精品久久久久久| jlzzjlzz亚洲女人18| 久久99国产精品久久99| 日一区二区三区| 夜夜精品视频一区二区| 亚洲三级视频在线观看| 中文无字幕一区二区三区| 精品国产乱码久久久久久老虎| 欧美调教femdomvk| 在线看日本不卡| 色哟哟在线观看一区二区三区| 国产经典欧美精品| 国产一区二区在线影院| 久久精品国产亚洲aⅴ| 五月天亚洲婷婷| 婷婷亚洲久悠悠色悠在线播放| 一区二区三区在线视频免费| 国产精品久久久久精k8| 国产亚洲制服色| 欧美高清在线视频| 日本一区二区三级电影在线观看| 久久一夜天堂av一区二区三区| 日韩美女一区二区三区| 精品国产一区二区精华| 精品999久久久| 国产三级欧美三级| 中文字幕中文字幕一区二区| 中文字幕精品一区二区精品绿巨人 | 国产精品69久久久久水密桃| 国产在线精品一区二区三区不卡| 久久机这里只有精品| 国产精品 日产精品 欧美精品| 国产大陆精品国产| 99国产一区二区三精品乱码| 91在线一区二区三区| 欧美影片第一页| 4438亚洲最大| 久久免费电影网| 国产精品国产三级国产aⅴ原创| 国产精品国产三级国产aⅴ入口| 亚洲丝袜精品丝袜在线| 亚洲黄色免费网站| 午夜精品久久一牛影视| 久久精品av麻豆的观看方式| 国内精品写真在线观看| 成人福利视频在线| 欧美日韩精品欧美日韩精品一 | 国产精品亚洲一区二区三区在线| 国产iv一区二区三区| 91视频免费观看| 日韩女优视频免费观看| 国产精品的网站| 偷拍自拍另类欧美| 国产 日韩 欧美大片| 欧美日韩一区小说| 26uuu另类欧美亚洲曰本| 国产精品久久久久久久久搜平片 | 欧美三区在线观看| 精品国产乱码久久久久久久久 | 国产日韩欧美亚洲| 亚洲综合视频在线观看| 久久国产视频网| 色域天天综合网| 国产亚洲婷婷免费| 天堂va蜜桃一区二区三区漫画版 | 欧洲精品在线观看| 日韩欧美色综合| 亚洲日本丝袜连裤袜办公室| 免费日韩伦理电影| 色婷婷综合激情| 久久九九99视频| 日本不卡视频一二三区| 91免费观看视频| 久久久久久久综合色一本| 亚洲成人激情av| 成人美女视频在线看| 日韩亚洲欧美高清| 亚洲国产日产av| 成人av免费网站| 久久日韩粉嫩一区二区三区| 亚洲国产成人精品视频| av激情亚洲男人天堂| 亚洲精品一区二区三区福利| 亚洲.国产.中文慕字在线| 99国产精品久久久久| 国产亚洲欧洲997久久综合| 蜜桃av一区二区三区电影| 欧美天堂一区二区三区| 综合在线观看色| www.亚洲人| 国产精品毛片大码女人| 国产精品自拍在线| www欧美成人18+| 免费的成人av| 欧美一级精品在线| 美腿丝袜亚洲三区| 7777精品伊人久久久大香线蕉的 | 337p日本欧洲亚洲大胆精品| 婷婷久久综合九色综合伊人色| 色94色欧美sute亚洲线路二| 国产精品乱人伦中文| 成人免费看的视频| 国产亚洲一区二区在线观看| 国产精品一区三区| 国产日产精品1区| www.欧美精品一二区| 国产精品无遮挡|