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

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

?? sysinfo.c

?? linux下獲取一些環境信息的代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/***********************************************************************/void loadavg(double *restrict av1, double *restrict av5, double *restrict av15) {    double avg_1=0, avg_5=0, avg_15=0;    char *restrict savelocale;        FILE_TO_BUF(LOADAVG_FILE,loadavg_fd);    savelocale = setlocale(LC_NUMERIC, NULL);    setlocale(LC_NUMERIC, "C");    if (sscanf(buf, "%lf %lf %lf", &avg_1, &avg_5, &avg_15) < 3) {	fputs("bad data in " LOADAVG_FILE "\n", stderr);	exit(1);    }    setlocale(LC_NUMERIC, savelocale);    SET_IF_DESIRED(av1,  avg_1);    SET_IF_DESIRED(av5,  avg_5);    SET_IF_DESIRED(av15, avg_15);}  static char buff[BUFFSIZE]; /* used in the procedures *//***********************************************************************/static void crash(const char *filename) {    perror(filename);    exit(EXIT_FAILURE);}/***********************************************************************/static void getrunners(unsigned int *restrict running, unsigned int *restrict blocked) {  struct direct *ent;  DIR *proc;  *running=0;  *blocked=0;  if((proc=opendir("/proc"))==NULL) crash("/proc");  while(( ent=readdir(proc) )) {    char tbuf[32];    char *cp;    int fd;    char c;    if (!isdigit(ent->d_name[0])) continue;    sprintf(tbuf, "/proc/%s/stat", ent->d_name);    fd = open(tbuf, O_RDONLY, 0);    if (fd == -1) continue;    memset(tbuf, '\0', sizeof tbuf); // didn't feel like checking read()    read(fd, tbuf, sizeof tbuf - 1); // need 32 byte buffer at most    close(fd);    cp = strrchr(tbuf, ')');    if(!cp) continue;    c = cp[2];    if (c=='R') {      (*running)++;      continue;    }    if (c=='D') {      (*blocked)++;      continue;    }  }  closedir(proc);}/***********************************************************************/void getstat(jiff *restrict cuse, jiff *restrict cice, jiff *restrict csys, jiff *restrict cide, jiff *restrict ciow, jiff *restrict cxxx, jiff *restrict cyyy, jiff *restrict czzz,	     unsigned long *restrict pin, unsigned long *restrict pout, unsigned long *restrict s_in, unsigned long *restrict sout,	     unsigned *restrict intr, unsigned *restrict ctxt,	     unsigned int *restrict running, unsigned int *restrict blocked,	     unsigned int *restrict btime, unsigned int *restrict processes) {  static int fd;  unsigned long long llbuf = 0;  int need_vmstat_file = 0;  int need_proc_scan = 0;  const char* b;  buff[BUFFSIZE-1] = 0;  /* ensure null termination in buffer */  if(fd){    lseek(fd, 0L, SEEK_SET);  }else{    fd = open("/proc/stat", O_RDONLY, 0);    if(fd == -1) crash("/proc/stat");  }  read(fd,buff,BUFFSIZE-1);  *intr = 0;   *ciow = 0;  /* not separated out until the 2.5.41 kernel */  *cxxx = 0;  /* not separated out until the 2.6.0-test4 kernel */  *cyyy = 0;  /* not separated out until the 2.6.0-test4 kernel */  *czzz = 0;  /* not separated out until the 2.6.11 kernel */  b = strstr(buff, "cpu ");  if(b) sscanf(b,  "cpu  %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu", cuse, cice, csys, cide, ciow, cxxx, cyyy, czzz);  b = strstr(buff, "page ");  if(b) sscanf(b,  "page %lu %lu", pin, pout);  else need_vmstat_file = 1;  b = strstr(buff, "swap ");  if(b) sscanf(b,  "swap %lu %lu", s_in, sout);  else need_vmstat_file = 1;  b = strstr(buff, "intr ");  if(b) sscanf(b,  "intr %Lu", &llbuf);  *intr = llbuf;  b = strstr(buff, "ctxt ");  if(b) sscanf(b,  "ctxt %Lu", &llbuf);  *ctxt = llbuf;  b = strstr(buff, "btime ");  if(b) sscanf(b,  "btime %u", btime);  b = strstr(buff, "processes ");  if(b) sscanf(b,  "processes %u", processes);  b = strstr(buff, "procs_running ");  if(b) sscanf(b,  "procs_running %u", running);  else need_proc_scan = 1;  b = strstr(buff, "procs_blocked ");  if(b) sscanf(b,  "procs_blocked %u", blocked);  else need_proc_scan = 1;  if(need_proc_scan){   /* Linux 2.5.46 (approximately) and below */    getrunners(running, blocked);  }  (*running)--;   // exclude vmstat itself  if(need_vmstat_file){  /* Linux 2.5.40-bk4 and above */    vminfo();    *pin  = vm_pgpgin;    *pout = vm_pgpgout;    *s_in = vm_pswpin;    *sout = vm_pswpout;  }}/***********************************************************************//* * Copyright 1999 by Albert Cahalan; all rights reserved. * This file may be used subject to the terms and conditions of the * GNU Library General Public License Version 2, or any later version * at your option, as published by the Free Software Foundation. * 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 Library General Public License for more details. */typedef struct mem_table_struct {  const char *name;     /* memory type name */  unsigned long *slot; /* slot in return struct */} mem_table_struct;static int compare_mem_table_structs(const void *a, const void *b){  return strcmp(((const mem_table_struct*)a)->name,((const mem_table_struct*)b)->name);}/* example data, following junk, with comments added: * * MemTotal:        61768 kB    old * MemFree:          1436 kB    old * MemShared:           0 kB    old (now always zero; not calculated) * Buffers:          1312 kB    old * Cached:          20932 kB    old * Active:          12464 kB    new * Inact_dirty:      7772 kB    new * Inact_clean:      2008 kB    new * Inact_target:        0 kB    new * Inact_laundry:       0 kB    new, and might be missing too * HighTotal:           0 kB * HighFree:            0 kB * LowTotal:        61768 kB * LowFree:          1436 kB * SwapTotal:      122580 kB    old * SwapFree:        60352 kB    old * Inactive:        20420 kB    2.5.41+ * Dirty:               0 kB    2.5.41+ * Writeback:           0 kB    2.5.41+ * Mapped:           9792 kB    2.5.41+ * Slab:             4564 kB    2.5.41+ * Committed_AS:     8440 kB    2.5.41+ * PageTables:        304 kB    2.5.41+ * ReverseMaps:      5738       2.5.41+ * SwapCached:          0 kB    2.5.??+ * HugePages_Total:   220       2.5.??+ * HugePages_Free:    138       2.5.??+ * Hugepagesize:     4096 kB    2.5.??+ *//* obsolete */unsigned long kb_main_shared;/* old but still kicking -- the important stuff */unsigned long kb_main_buffers;unsigned long kb_main_cached;unsigned long kb_main_free;unsigned long kb_main_total;unsigned long kb_swap_free;unsigned long kb_swap_total;/* recently introduced */unsigned long kb_high_free;unsigned long kb_high_total;unsigned long kb_low_free;unsigned long kb_low_total;/* 2.4.xx era */unsigned long kb_active;unsigned long kb_inact_laundry;unsigned long kb_inact_dirty;unsigned long kb_inact_clean;unsigned long kb_inact_target;unsigned long kb_swap_cached;  /* late 2.4 and 2.6+ only *//* derived values */unsigned long kb_swap_used;unsigned long kb_main_used;/* 2.5.41+ */unsigned long kb_writeback;unsigned long kb_slab;unsigned long nr_reversemaps;unsigned long kb_committed_as;unsigned long kb_dirty;unsigned long kb_inactive;unsigned long kb_mapped;unsigned long kb_pagetables;// seen on a 2.6.x kernel:static unsigned long kb_vmalloc_chunk;static unsigned long kb_vmalloc_total;static unsigned long kb_vmalloc_used;void meminfo(void){  char namebuf[16]; /* big enough to hold any row name */  mem_table_struct findme = { namebuf, NULL};  mem_table_struct *found;  char *head;  char *tail;  static const mem_table_struct mem_table[] = {  {"Active",       &kb_active},       // important  {"Buffers",      &kb_main_buffers}, // important  {"Cached",       &kb_main_cached},  // important  {"Committed_AS", &kb_committed_as},  {"Dirty",        &kb_dirty},        // kB version of vmstat nr_dirty  {"HighFree",     &kb_high_free},  {"HighTotal",    &kb_high_total},  {"Inact_clean",  &kb_inact_clean},  {"Inact_dirty",  &kb_inact_dirty},  {"Inact_laundry",&kb_inact_laundry},  {"Inact_target", &kb_inact_target},  {"Inactive",     &kb_inactive},     // important  {"LowFree",      &kb_low_free},  {"LowTotal",     &kb_low_total},  {"Mapped",       &kb_mapped},       // kB version of vmstat nr_mapped  {"MemFree",      &kb_main_free},    // important  {"MemShared",    &kb_main_shared},  // important, but now gone!  {"MemTotal",     &kb_main_total},   // important  {"PageTables",   &kb_pagetables},   // kB version of vmstat nr_page_table_pages  {"ReverseMaps",  &nr_reversemaps},  // same as vmstat nr_page_table_pages  {"Slab",         &kb_slab},         // kB version of vmstat nr_slab  {"SwapCached",   &kb_swap_cached},  {"SwapFree",     &kb_swap_free},    // important  {"SwapTotal",    &kb_swap_total},   // important  {"VmallocChunk", &kb_vmalloc_chunk},  {"VmallocTotal", &kb_vmalloc_total},  {"VmallocUsed",  &kb_vmalloc_used},  {"Writeback",    &kb_writeback},    // kB version of vmstat nr_writeback  };  const int mem_table_count = sizeof(mem_table)/sizeof(mem_table_struct);  FILE_TO_BUF(MEMINFO_FILE,meminfo_fd);  kb_inactive = ~0UL;  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, mem_table, mem_table_count,        sizeof(mem_table_struct), compare_mem_table_structs    );    head = tail+1;    if(!found) goto nextline;    *(found->slot) = strtoul(head,&tail,10);nextline:    tail = strchr(head, '\n');    if(!tail) break;    head = tail+1;  }  if(!kb_low_total){  /* low==main except with large-memory support */    kb_low_total = kb_main_total;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文在线一区二区| 91久久久免费一区二区| 久久久久国产精品麻豆ai换脸| 精品一区二区三区在线视频| 国产精品久久久久精k8| 91精品国产丝袜白色高跟鞋| 青青青伊人色综合久久| 国产精品污www在线观看| 一本色道综合亚洲| 蜜臀精品久久久久久蜜臀| 中文字幕中文字幕在线一区| 4438亚洲最大| 欧美日韩精品免费观看视频| 久久国产尿小便嘘嘘尿| 亚洲精品videosex极品| 久久众筹精品私拍模特| 一本到不卡免费一区二区| 久久99在线观看| 亚洲精品中文在线影院| 久久久久久电影| 在线视频你懂得一区二区三区| 国产揄拍国内精品对白| 亚洲不卡一区二区三区| 亚洲欧美综合网| 欧美电影免费提供在线观看| 欧美一卡二卡三卡四卡| 精油按摩中文字幕久久| 欧美精品一区男女天堂| 国产精品69毛片高清亚洲| 国产亚洲一区字幕| 色综合久久99| 日本不卡免费在线视频| 日韩视频一区在线观看| 粉嫩av亚洲一区二区图片| 婷婷丁香久久五月婷婷| 国产欧美日韩综合| 欧美一区欧美二区| 91久久精品国产91性色tv| 成人黄页在线观看| 久久福利资源站| 亚洲123区在线观看| 一区二区三区精品视频| 国产精品久久久久一区| 久久蜜臀中文字幕| 日韩精品一区二区三区在线| 欧美日韩卡一卡二| 色中色一区二区| 91麻豆精品秘密| 国产成人av电影在线播放| 久久99精品一区二区三区三区| 午夜电影久久久| 亚洲国产日韩在线一区模特| 一区二区三区免费在线观看| 亚洲欧美日韩国产手机在线| 亚洲视频一区在线观看| 国产精品国产三级国产有无不卡| 国产亚洲欧美日韩俺去了| 精品国产乱码久久久久久图片| 欧美一级欧美一级在线播放| 欧美日韩激情一区二区三区| 欧美美女黄视频| 欧美私模裸体表演在线观看| 欧美日韩国产成人在线免费| 欧美日韩1234| 欧美一区二区三区系列电影| 欧美精三区欧美精三区| 欧美影视一区二区三区| 不卡欧美aaaaa| 激情久久久久久久久久久久久久久久| 美女脱光内衣内裤视频久久网站| 久久精品国产久精国产爱| 久久99久久精品| 国产精品一区一区三区| 成人福利电影精品一区二区在线观看 | 一区二区三区蜜桃| 亚洲影院久久精品| 中文字幕在线不卡国产视频| 国产精品区一区二区三区| 国产精品三级在线观看| 国产精品国产a级| 亚洲欧洲日产国码二区| 亚洲天堂av一区| 亚洲线精品一区二区三区| 天天色天天操综合| 日韩一区二区三区免费观看| 欧美精品一区二区三区高清aⅴ | 久久99久久久久久久久久久| 奇米一区二区三区av| 男女性色大片免费观看一区二区 | 国产精品色哟哟| 亚洲欧美aⅴ...| 日av在线不卡| av日韩在线网站| 欧美肥妇bbw| 日本一区二区三区四区在线视频| 亚洲精选免费视频| 美国精品在线观看| av在线不卡免费看| 欧美日韩不卡一区| 国产欧美一二三区| 亚洲一级二级三级在线免费观看| 日韩精品91亚洲二区在线观看| 国内精品久久久久影院一蜜桃| 97久久精品人人澡人人爽| 欧美猛男超大videosgay| 国产欧美精品一区二区三区四区| 亚洲免费观看高清完整版在线观看熊| 人禽交欧美网站| 99视频精品全部免费在线| 欧美一区二区美女| 亚洲少妇30p| 九九热在线视频观看这里只有精品| 懂色av中文一区二区三区| 精品视频在线免费看| 精品国产乱码久久久久久夜甘婷婷 | 欧美精品乱码久久久久久| 欧美不卡一二三| 国产蜜臀97一区二区三区 | 精品黑人一区二区三区久久| 亚洲女厕所小便bbb| 岛国一区二区在线观看| 4438x成人网最大色成网站| 亚洲欧美日韩久久| www.av亚洲| 国产精品久久久久久久久快鸭 | 精品一区二区三区久久| 国产精品99久| 91黄色在线观看| 中文字幕不卡的av| 久久99精品久久久| 欧美日韩情趣电影| 亚洲女女做受ⅹxx高潮| 国产馆精品极品| 日韩精品专区在线影院重磅| 亚洲国产日韩一级| 成人av网址在线| 欧美一级在线免费| 亚洲va欧美va人人爽| 日本精品一级二级| 亚洲视频在线一区观看| 成人妖精视频yjsp地址| 久久综合九色综合97_久久久| 日韩国产精品91| 欧美年轻男男videosbes| 日韩美女视频一区二区| av综合在线播放| 国产精品久久久久久久久快鸭| 国产精品一区二区黑丝| 久久综合狠狠综合久久综合88| 久久国产剧场电影| 精品动漫一区二区三区在线观看| 日韩成人午夜精品| 免费一级片91| 成人午夜免费电影| 亚洲欧洲成人自拍| 欧美日韩久久一区二区| 美女免费视频一区| 国产日韩在线不卡| 在线一区二区视频| 日韩国产欧美一区二区三区| 2023国产精品自拍| 91在线观看视频| 奇米色777欧美一区二区| 精品国产a毛片| 99亚偷拍自图区亚洲| 香蕉久久夜色精品国产使用方法| 欧美一区二区成人| 成人国产一区二区三区精品| 亚洲一区电影777| 欧美大片顶级少妇| 亚洲欧美日韩久久精品| 亚洲乱码国产乱码精品精的特点 | 日本v片在线高清不卡在线观看| 中文字幕在线不卡国产视频| 国产精品网友自拍| 综合在线观看色| 夜夜精品视频一区二区 | 亚洲国产欧美在线| 777a∨成人精品桃花网| 国产白丝精品91爽爽久久 | 国产乱色国产精品免费视频| 亚洲视频一区在线观看| 欧美一区二区播放| 97精品国产露脸对白| 免费成人小视频| 亚洲色图欧美在线| 久久影音资源网| 欧美日韩国产成人在线免费| 国产不卡高清在线观看视频| 天天操天天色综合| 国产精品久久看| 精品国产一二三区| 欧美系列一区二区| 成人国产一区二区三区精品| 奇米在线7777在线精品| 亚洲毛片av在线| 国产精品久久夜| www精品美女久久久tv| 91精品欧美久久久久久动漫| 日本韩国精品在线|