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

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

?? data.c

?? opensolaris下列出top進程
?? C
字號:
#include "data.h"database *init_database (){  int i;  database *data = malloc (sizeof (database));  // cpu  glibtop_cpu *cpu = malloc (sizeof (glibtop_cpu));  glibtop_get_cpu (cpu);  cpustorage *cpustore = malloc (sizeof (cpustorage));  cpustore->olddata = cpu;  // fill cpuusage (list)  cpuusage *use = malloc (sizeof (cpuusage));  use->total = cpu->total;  use->user = cpu->user;  use->nice = cpu->nice;  use->sys = cpu->sys;  use->idle = cpu->idle;  use->frequency = cpu->frequency;  use->next = NULL;  data->Lcpu = use;  data->Scpu = cpustore;  cpuusage *temp = use;  i = 0;  while (cpu->xcpu_total[i] != 0)    {      cpuusage *neu = malloc (sizeof (cpuusage));      neu->total = cpu->xcpu_total[i];      neu->user = cpu->xcpu_user[i];      neu->nice = cpu->xcpu_nice[i];      neu->sys = cpu->xcpu_sys[i];      neu->idle = cpu->xcpu_idle[i];      neu->next = NULL;      temp->next = neu;      temp = neu;      i++;    }  // memoryusage  glibtop_mem *mem = malloc (sizeof (glibtop_mem));  data->memoryusage = mem;  // TODO: make this dynamic  //  fill netload (list)  netstorage *seth0 = malloc (sizeof (netload));  netload *ueth0 = malloc (sizeof (netload));  glibtop_netload *geth0 = malloc (sizeof (glibtop_netload));  glibtop_get_netload (geth0, "eth0");  seth0->olddata = geth0;  seth0->next = NULL;  strcpy (ueth0->device, "eth0");  ueth0->next = NULL;  data->Snetload = seth0;  data->Lnetload = ueth0;  // process list  data->Lprocess = create_processlist ();  find_top_processes (data->Lprocess, data->Tprocess, NUMBER_PROCESSES);  // list of mounted filesystems  glibtop_mountlist *mountlist = malloc (sizeof (glibtop_mountlist));  // get a list of all fs  glibtop_mountentry *mountentry = glibtop_get_mountlist (mountlist, 0);  csm_fsinfo *previous;  for (i = 0; i < mountlist->number; i++)    {      csm_fsinfo *neu = malloc (sizeof (csm_fsinfo));      strcpy (neu->devname, mountentry[i].devname);      strcpy (neu->mountdir, mountentry[i].mountdir);      strcpy (neu->type, mountentry[i].type);      //neu->mountentry = &mountentry[i];      glibtop_fsusage *usage = malloc (sizeof (glibtop_fsusage));      // get usage      glibtop_get_fsusage (usage, mountentry[i].mountdir);      // don't "use" filesystems with zero blocks or tmpfs      if (usage->blocks == 0 || !strcmp (neu->type, "tmpfs"))        continue;      neu->fsusage = usage;      // handle first node      if (data->fsinfo == NULL)        {          data->fsinfo = neu;          neu->prev = NULL;          neu->next = NULL;          previous = neu;          continue;        }      neu->prev = previous;      previous->next = neu;      previous = neu;      neu->next = NULL;    }  g_free (mountentry);  free (mountlist);  // XXX:  hack! (prevents division by zero in some cases)  //       Bugs are fixed, this is for history reasons only;-)  usleep (100000);  return data;}voidfree_database (database * data){  g_free (data->Scpu->olddata);  g_free (data->Scpu);  g_free (data->memoryusage);  //free Lcpu  cpuusage *cputemp = data->Lcpu;  cpuusage *cpudelinquent;  while (cputemp != NULL)    {      cpudelinquent = cputemp;      cputemp = cputemp->next;      g_free (cpudelinquent);    }  g_free (cputemp);  //free Lnetload  netload *nettemp = data->Lnetload;  netload *netdelinquent;  while (nettemp != NULL)    {      netdelinquent = nettemp;      nettemp = nettemp->next;      g_free (netdelinquent);    }  g_free (nettemp);  //free Snetload  netstorage *snettemp = data->Snetload;  netstorage *snetdelinquent;  while (snettemp != NULL)    {      snetdelinquent = snettemp;      snettemp = snettemp->next;      g_free (snetdelinquent->olddata);      g_free (snetdelinquent);    }  g_free (snettemp);  // free processes  process *ptemp = data->Lprocess;  process *prev;  while (ptemp != NULL)    {      prev = ptemp;      ptemp = ptemp->next;      free (prev);    }  // TODO: free filesystems  free (ptemp);  g_free (data);}/** * Methods which fill the data storage with the actual content */voidcalc_cpu (database * data){  glibtop_cpu *cpu = g_malloc (sizeof (glibtop_cpu));  glibtop_get_cpu (cpu);  cpustorage *storage = data->Scpu;  data->Lcpu->total = (cpu->total - storage->olddata->total);  if (data->Lcpu->total != 0)    {      // if it is zero, no time has passed      // since last invocation (and we would have division by zero)      data->Lcpu->user =        (cpu->user - storage->olddata->user) / data->Lcpu->total;      data->Lcpu->nice =        (cpu->nice - storage->olddata->nice) / data->Lcpu->total;      data->Lcpu->sys =        (cpu->sys - storage->olddata->sys) / data->Lcpu->total;      data->Lcpu->idle =        (cpu->idle - storage->olddata->idle) / data->Lcpu->total;      data->Lcpu->frequency = cpu->frequency;      // this is for smp systems,      // calculate all other cpus      cpuusage *temp = data->Lcpu->next;      int i = 0;      while (temp != NULL)        {          temp->total =            (cpu->xcpu_total[i] - storage->olddata->xcpu_total[i]);          temp->user =            (cpu->xcpu_user[i] - storage->olddata->xcpu_user[i])            / temp->total;          temp->nice =            (cpu->xcpu_nice[i] - storage->olddata->xcpu_nice[i])            / temp->total;          temp->sys =            (cpu->xcpu_sys[i] - storage->olddata->xcpu_sys[i]) / temp->total;          temp->idle =            (cpu->xcpu_idle[i] - storage->olddata->xcpu_idle[i])            / temp->total;          temp = temp->next;          i++;        }    }  free (storage->olddata);  storage->olddata = cpu;}voidcalc_net (database * data){  netload *current_netload = data->Lnetload;    // first netdevice  netstorage *storage = data->Snetload;  // walk list of interfaces  while ((current_netload != NULL) && (storage != NULL))    {      glibtop_netload *new = malloc (sizeof (glibtop_netload));      // get current info on device      glibtop_get_netload (new, current_netload->device);      glibtop_netload *old = storage->olddata;      // calc netload      current_netload->bytes_in = new->bytes_in - old->bytes_in;      current_netload->bytes_out = new->bytes_out - old->bytes_out;      current_netload->packets_in = new->packets_in - old->packets_in;      current_netload->packets_out = new->packets_out - old->packets_out;      current_netload->errors_in = new->errors_in - old->errors_in;      current_netload->errors_out = new->errors_out - old->errors_out;      current_netload->collisions = new->collisions - old->collisions;      // free memory      free (storage->olddata);      storage->olddata = new;      // goto next device      current_netload = current_netload->next;      storage = storage->next;    }}voidcalc_mem (database * data){  glibtop_get_mem (data->memoryusage);}voidclean_csm_fsinfo (database * data){  csm_fsinfo *temp = data->fsinfo;  while (temp != NULL)    {      // this fs is no longer mounted      if (temp->touched == 0)        {          csm_fsinfo *save = temp->next;          if (temp->next != NULL)            temp->next->prev = temp->prev;          if (temp->prev != NULL)            temp->prev->next = temp->next;          // free temp          free (temp->fsusage);          free (temp);          temp = save;          continue;        }      temp = temp->next;    }}voidclean_csm_fsinfo_touched (database * data){  csm_fsinfo *temp = data->fsinfo;  while (temp != NULL)    {      temp->touched = 0;      temp = temp->next;    }}voidupdate_csm_fsinfo (database * data){  glibtop_mountlist *mountlist = malloc (sizeof (glibtop_mountlist));  glibtop_mountentry *entries = glibtop_get_mountlist (mountlist, 0);  int i, flag;  for (i = 0; i < mountlist->number; i++)    {      flag = 0;      csm_fsinfo *temp = data->fsinfo;      while (temp != NULL)        {          // skip already found filesystems          if (temp->touched == 1)            {              temp = temp->next;              continue;            }          // is this mounted filesystem in our list?          if (!strcmp (entries[i].mountdir, temp->mountdir))            {              temp->touched = 1;              flag = 1;              break;            }          temp = temp->next;        }      // filesystem is not yet in mountlist      if (flag == 0)        {          // make new csm_fsinfo          csm_fsinfo *neu = malloc (sizeof (csm_fsinfo));          strcpy (neu->devname, entries[i].devname);          strcpy (neu->mountdir, entries[i].mountdir);          strcpy (neu->type, entries[i].type);          neu->touched = 1;          glibtop_fsusage *usage = malloc (sizeof (glibtop_fsusage));          glibtop_get_fsusage (usage, entries[i].mountdir);          neu->fsusage = usage;          // don't use tmpfs and filesystems with zero blockcount          if (usage->blocks == 0 || !strcmp (neu->type, "tmpfs"))            {              free (neu->fsusage);              free (neu);              continue;            }          neu->next = NULL;          // goto last listitem          temp = data->fsinfo;          while (temp->next != NULL)            {              temp = temp->next;            }          temp->next = neu;          neu->prev = temp;        }                       // fi    }                           // rof  g_free (mountlist);  g_free (entries);  // clean list  clean_csm_fsinfo (data);  // reset csm_fsinfo->touched  clean_csm_fsinfo_touched (data);}voidcalc_disk (database * data){  // update list of mounted filesystems  update_csm_fsinfo (data);  csm_fsinfo *temp = data->fsinfo;  while (temp != NULL)    {      // update fsusage      glibtop_get_fsusage (temp->fsusage, temp->mountdir);      temp = temp->next;    }}voidcalc_top_processes (database * data){  update_processlist (data->Lprocess);  find_top_processes (data->Lprocess, data->Tprocess, NUMBER_PROCESSES);}/** * Utility functions */voidinit_csm (){  glibtop_init ();}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品婷婷国产综合久久性色| 一本大道久久a久久综合| 色悠久久久久综合欧美99| 日韩免费福利电影在线观看| 日韩精品欧美精品| 日韩片之四级片| 国产精品77777竹菊影视小说| 国产亚洲精品精华液| 成人激情免费网站| 亚洲女同ⅹxx女同tv| 91久久精品网| 六月丁香婷婷色狠狠久久| 精品88久久久久88久久久| 国产成人免费在线观看不卡| 亚洲欧美综合色| 欧美日韩一区小说| 精品一区二区三区在线视频| 中文字幕欧美日韩一区| 欧美性视频一区二区三区| 免费精品视频在线| 国产精品女上位| 在线视频综合导航| 黑人巨大精品欧美一区| 一区二区三区影院| 精品国产一区二区三区不卡 | 在线电影院国产精品| 国产在线视视频有精品| 亚洲成av人片一区二区三区| 久久综合资源网| 欧美日韩精品欧美日韩精品一| 精品一区二区三区影院在线午夜 | 精品国产乱码久久久久久浪潮| www.av亚洲| 极品瑜伽女神91| 视频一区二区三区在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 中文字幕亚洲一区二区va在线| 日韩午夜激情av| 欧美日本一区二区三区| 一本到不卡精品视频在线观看| 国产精品888| 韩国成人福利片在线播放| 奇米影视一区二区三区小说| 亚洲一区二区中文在线| 亚洲理论在线观看| 日韩美女视频19| 日韩一区在线免费观看| 亚洲视频图片小说| 亚洲手机成人高清视频| 中文字幕一区二区三区av| 国产精品免费看片| 亚洲欧美日韩国产成人精品影院 | 91啪亚洲精品| 国产性天天综合网| 精品成人私密视频| 久久久久久久网| 国产精品久久夜| 一区二区三区欧美日| 亚洲福利一区二区| 蜜桃av一区二区在线观看| 国内精品视频一区二区三区八戒 | 一区二区三区免费网站| 日本中文字幕一区| 国产在线观看一区二区| 91福利视频在线| 精品av综合导航| 一二三四社区欧美黄| 免费欧美在线视频| www亚洲一区| 一区二区三区在线免费| 精久久久久久久久久久| 91小视频免费观看| 日韩欧美二区三区| 亚洲综合一二区| 成人精品免费看| 91精品国产aⅴ一区二区| 亚洲人成在线观看一区二区| 精品一区二区三区影院在线午夜| 91一区二区三区在线播放| 精品久久一区二区| 亚洲风情在线资源站| 播五月开心婷婷综合| 国产无遮挡一区二区三区毛片日本| 日本在线不卡视频| 精品1区2区3区| 曰韩精品一区二区| 91同城在线观看| 日韩久久一区二区| 99久久久久久| 中文字幕亚洲一区二区av在线| 国产麻豆精品theporn| 欧美成人乱码一区二区三区| 日韩中文字幕区一区有砖一区 | 欧美tickling网站挠脚心| 亚洲国产精品一区二区www| 色噜噜偷拍精品综合在线| 18成人在线观看| 欧美体内she精高潮| 亚洲自拍偷拍av| 91麻豆精品国产91久久久久久| 亚洲国产精品一区二区久久恐怖片| 色成年激情久久综合| 亚洲日本在线a| 91国偷自产一区二区三区观看| 亚洲精品欧美综合四区| 欧美日韩视频在线观看一区二区三区| 亚洲成人免费在线| 久久久www成人免费毛片麻豆| 激情综合网最新| 亚洲四区在线观看| 欧美精品777| 国产成人精品亚洲777人妖| 亚洲欧美日韩中文播放| 在线播放亚洲一区| 国产成人精品aa毛片| 一区二区三区鲁丝不卡| 精品国产一区二区国模嫣然| 99精品黄色片免费大全| 美国三级日本三级久久99| 国产精品女上位| 欧美大度的电影原声| 91视频在线观看| 国产毛片精品视频| 肉色丝袜一区二区| 综合久久久久久| 久久综合九色综合97婷婷| 在线看日韩精品电影| 欧美日韩高清一区二区不卡| 国产成人亚洲综合a∨猫咪| 天堂va蜜桃一区二区三区漫画版 | 欧美一级欧美三级| 成人黄色777网| 国产精品自拍一区| 美女诱惑一区二区| 亚洲线精品一区二区三区八戒| 久久网站热最新地址| 91精品国产91久久久久久最新毛片| 91丨九色porny丨蝌蚪| 成人18视频日本| 成人avav在线| 成人av电影在线网| 国产成人午夜精品影院观看视频| 麻豆久久久久久久| 蜜桃视频一区二区三区在线观看| 风间由美一区二区三区在线观看 | 国产大陆精品国产| 粉嫩aⅴ一区二区三区四区| 国产精品1024| 成人国产精品视频| 成人精品国产福利| 成人久久18免费网站麻豆| 99久久精品情趣| 欧美亚洲图片小说| 欧美日韩亚洲综合一区| 欧美放荡的少妇| 国产午夜亚洲精品理论片色戒| 欧美国产日本视频| 亚洲欧美一区二区三区孕妇| 尤物av一区二区| 日韩高清在线一区| 成人黄色免费短视频| 色噜噜狠狠成人网p站| 欧美一区二区三区在线| 国产日韩欧美一区二区三区乱码| 亚洲天堂网中文字| 日本欧美韩国一区三区| 国产成人精品网址| 欧美日韩国产大片| 国产日韩欧美精品综合| 亚洲午夜日本在线观看| 国产又黄又大久久| 精品视频资源站| 中文字幕一区二区三区在线播放 | 五月天婷婷综合| 99久久亚洲一区二区三区青草| 日韩一区二区电影网| 国产精品不卡在线| 国产一区二区三区观看| 6080日韩午夜伦伦午夜伦| 亚洲免费观看高清完整版在线观看| 免费不卡在线观看| 欧美日精品一区视频| 中文字幕一区三区| 国产+成+人+亚洲欧洲自线| 日韩精品一区国产麻豆| 五月天欧美精品| 欧美高清视频一二三区| 一区二区三区不卡视频| 99国产精品久久久| 综合久久久久久久| 色哟哟在线观看一区二区三区| 亚洲国产成人一区二区三区| 成人综合婷婷国产精品久久| 久久精品视频在线免费观看 | 亚洲国产一区视频| 欧美少妇性性性| 日韩精品亚洲一区| 日韩午夜激情电影| 国产在线精品一区二区三区不卡| 欧美一区二区在线免费播放|