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

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

?? tcbmttest.c

?? Tokyo Cabinet的Tokyo Cabinet 是一個DBM的實現(xiàn)。這里的數據庫由一系列key-value對的記錄構成。key和value都可以是任意長度的字節(jié)序列,既可以是二進制也可以是字符
?? C
?? 第 1 頁 / 共 4 頁
字號:
      err = true;    }    if(tcbdbrnum(bdb) != tcmaprnum(map)){      eprint(bdb, "(validation)");      err = true;    }    int end = rnum * tnum;    for(int i = 1; i <= end && !err; i++){      char kbuf[RECBUFSIZ];      int ksiz = sprintf(kbuf, "%d", i - 1);      int vsiz;      const char *vbuf = tcmapget(map, kbuf, ksiz, &vsiz);      int rsiz;      char *rbuf = tcbdbget(bdb, kbuf, ksiz, &rsiz);      if(vbuf){        iputchar('.');        if(!rbuf){          eprint(bdb, "tcbdbget");          err = true;        } else if(rsiz != vsiz || memcmp(rbuf, vbuf, rsiz)){          eprint(bdb, "(validation)");          err = true;        }      } else {        iputchar('*');        if(rbuf || tcbdbecode(bdb) != TCENOREC){          eprint(bdb, "(validation)");          err = true;        }      }      tcfree(rbuf);      if(i % 50 == 0) iprintf(" (%08d)\n", i);    }    if(rnum % 50 > 0) iprintf(" (%08d)\n", rnum);  }  tcmapdel(map);  iprintf("record number: %llu\n", (unsigned long long)tcbdbrnum(bdb));  iprintf("size: %llu\n", (unsigned long long)tcbdbfsiz(bdb));  mprint(bdb);  sysprint();  if(!tcbdbclose(bdb)){    eprint(bdb, "tcbdbclose");    err = true;  }  tcbdbdel(bdb);  iprintf("time: %.3f\n", tctime() - stime);  iprintf("%s\n\n", err ? "error" : "ok");  return err ? 1 : 0;}/* perform typical command */static int proctypical(const char *path, int tnum, int rnum, int lmemb, int nmemb,                       int bnum, int apow, int fpow, int opts, int omode, bool nc, int rratio){  iprintf("<Typical Access Test>\n  seed=%u  path=%s  tnum=%d  rnum=%d  lmemb=%d  nmemb=%d"          "  bnum=%d  apow=%d  fpow=%d  opts=%d  omode=%d  nc=%d  rratio=%d\n\n",          g_randseed, path, tnum, rnum, lmemb, nmemb, bnum, apow, fpow, opts, omode, nc, rratio);  bool err = false;  double stime = tctime();  TCBDB *bdb = tcbdbnew();  if(g_dbgfd >= 0) tcbdbsetdbgfd(bdb, g_dbgfd);  if(!tcbdbsetmutex(bdb)){    eprint(bdb, "tcbdbsetmutex");    err = true;  }  if(!tcbdbsetcodecfunc(bdb, _tc_recencode, NULL, _tc_recdecode, NULL)){    eprint(bdb, "tcbdbsetcodecfunc");    err = true;  }  if(!tcbdbtune(bdb, lmemb, nmemb, bnum, apow, fpow, opts)){    eprint(bdb, "tcbdbtune");    err = true;  }  if(!tcbdbopen(bdb, path, BDBOWRITER | BDBOCREAT | BDBOTRUNC | omode)){    eprint(bdb, "tcbdbopen");    err = true;  }  TARGTYPICAL targs[tnum];  pthread_t threads[tnum];  if(tnum == 1){    targs[0].bdb = bdb;    targs[0].rnum = rnum;    targs[0].nc = nc;    targs[0].rratio = rratio;    targs[0].id = 0;    if(threadtypical(targs) != NULL) err = true;  } else {    for(int i = 0; i < tnum; i++){      targs[i].bdb = bdb;      targs[i].rnum = rnum;      targs[i].nc = nc;      targs[i].rratio = rratio;      targs[i].id = i;      if(pthread_create(threads + i, NULL, threadtypical, targs + i) != 0){        eprint(bdb, "pthread_create");        targs[i].id = -1;        err = true;      }    }    for(int i = 0; i < tnum; i++){      if(targs[i].id == -1) continue;      void *rv;      if(pthread_join(threads[i], &rv) != 0){        eprint(bdb, "pthread_join");        err = true;      } else if(rv){        err = true;      }    }  }  iprintf("record number: %llu\n", (unsigned long long)tcbdbrnum(bdb));  iprintf("size: %llu\n", (unsigned long long)tcbdbfsiz(bdb));  mprint(bdb);  sysprint();  if(!tcbdbclose(bdb)){    eprint(bdb, "tcbdbclose");    err = true;  }  tcbdbdel(bdb);  iprintf("time: %.3f\n", tctime() - stime);  iprintf("%s\n\n", err ? "error" : "ok");  return err ? 1 : 0;}/* perform race command */static int procrace(const char *path, int tnum, int rnum, int lmemb, int nmemb,                    int bnum, int apow, int fpow, int opts, int omode){  iprintf("<Race Condition Test>\n  seed=%u  path=%s  tnum=%d  rnum=%d  lmemb=%d  nmemb=%d"          "  bnum=%d  apow=%d  fpow=%d  opts=%d  omode=%d\n\n",          g_randseed, path, tnum, rnum, lmemb, nmemb, bnum, apow, fpow, opts, omode);  bool err = false;  double stime = tctime();  TCBDB *bdb = tcbdbnew();  if(g_dbgfd >= 0) tcbdbsetdbgfd(bdb, g_dbgfd);  if(!tcbdbsetmutex(bdb)){    eprint(bdb, "tcbdbsetmutex");    err = true;  }  if(!tcbdbsetcodecfunc(bdb, _tc_recencode, NULL, _tc_recdecode, NULL)){    eprint(bdb, "tcbdbsetcodecfunc");    err = true;  }  if(!tcbdbtune(bdb, lmemb, nmemb, bnum, apow, fpow, opts)){    eprint(bdb, "tcbdbtune");    err = true;  }  if(!tcbdbopen(bdb, path, BDBOWRITER | BDBOCREAT | BDBOTRUNC | omode)){    eprint(bdb, "tcbdbopen");    err = true;  }  TARGRACE targs[tnum];  pthread_t threads[tnum];  if(tnum == 1){    targs[0].bdb = bdb;    targs[0].rnum = rnum;    targs[0].id = 0;    if(threadrace(targs) != NULL) err = true;  } else {    for(int i = 0; i < tnum; i++){      targs[i].bdb = bdb;      targs[i].rnum = rnum;      targs[i].id = i;      if(pthread_create(threads + i, NULL, threadrace, targs + i) != 0){        eprint(bdb, "pthread_create");        targs[i].id = -1;        err = true;      }    }    for(int i = 0; i < tnum; i++){      if(targs[i].id == -1) continue;      void *rv;      if(pthread_join(threads[i], &rv) != 0){        eprint(bdb, "pthread_join");        err = true;      } else if(rv){        err = true;      }    }  }  iprintf("record number: %llu\n", (unsigned long long)tcbdbrnum(bdb));  iprintf("size: %llu\n", (unsigned long long)tcbdbfsiz(bdb));  mprint(bdb);  sysprint();  if(!tcbdbclose(bdb)){    eprint(bdb, "tcbdbclose");    err = true;  }  tcbdbdel(bdb);  iprintf("time: %.3f\n", tctime() - stime);  iprintf("%s\n\n", err ? "error" : "ok");  return err ? 1 : 0;}/* thread the write function */static void *threadwrite(void *targ){  TCBDB *bdb = ((TARGWRITE *)targ)->bdb;  int rnum = ((TARGWRITE *)targ)->rnum;  bool rnd = ((TARGWRITE *)targ)->rnd;  int id = ((TARGWRITE *)targ)->id;  bool err = false;  int base = id * rnum;  for(int i = 1; i <= rnum; i++){    char buf[RECBUFSIZ];    int len = sprintf(buf, "%08d", base + (rnd ? myrand(i) : i));    if(!tcbdbput(bdb, buf, len, buf, len)){      eprint(bdb, "tcbdbput");      err = true;      break;    }    if(id <= 0 && rnum > 250 && i % (rnum / 250) == 0){      iputchar('.');      if(i == rnum || i % (rnum / 10) == 0) iprintf(" (%08d)\n", i);    }  }  return err ? "error" : NULL;}/* thread the read function */static void *threadread(void *targ){  TCBDB *bdb = ((TARGREAD *)targ)->bdb;  int rnum = ((TARGREAD *)targ)->rnum;  bool wb = ((TARGREAD *)targ)->wb;  bool rnd = ((TARGREAD *)targ)->rnd;  int id = ((TARGREAD *)targ)->id;  bool err = false;  int base = id * rnum;  for(int i = 1; i <= rnum && !err; i++){    char kbuf[RECBUFSIZ];    int ksiz = sprintf(kbuf, "%08d", base + (rnd ? myrandnd(i) : i));    int vsiz;    if(wb){      int vsiz;      const char *vbuf = tcbdbget3(bdb, kbuf, ksiz, &vsiz);      if(!vbuf && (!rnd || tcbdbecode(bdb) != TCENOREC)){        eprint(bdb, "tcbdbget3");        err = true;      }    } else {      char *vbuf = tcbdbget(bdb, kbuf, ksiz, &vsiz);      if(!vbuf && (!rnd || tcbdbecode(bdb) != TCENOREC)){        eprint(bdb, "tcbdbget");        err = true;      }      tcfree(vbuf);    }    if(id == 0 && rnum > 250 && i % (rnum / 250) == 0){      iputchar('.');      if(i == rnum || i % (rnum / 10) == 0) iprintf(" (%08d)\n", i);    }  }  return err ? "error" : NULL;}/* thread the remove function */static void *threadremove(void *targ){  TCBDB *bdb = ((TARGREMOVE *)targ)->bdb;  int rnum = ((TARGREMOVE *)targ)->rnum;  bool rnd = ((TARGREMOVE *)targ)->rnd;  int id = ((TARGREMOVE *)targ)->id;  bool err = false;  int base = id * rnum;  for(int i = 1; i <= rnum; i++){    char kbuf[RECBUFSIZ];    int ksiz = sprintf(kbuf, "%08d", base + (rnd ? myrand(i + 1) : i));    if(!tcbdbout(bdb, kbuf, ksiz) && (!rnd || tcbdbecode(bdb) != TCENOREC)){      eprint(bdb, "tcbdbout");      err = true;      break;    }    if(id == 0 && rnum > 250 && i % (rnum / 250) == 0){      iputchar('.');      if(i == rnum || i % (rnum / 10) == 0) iprintf(" (%08d)\n", i);    }  }  return err ? "error" : NULL;}/* thread the wicked function */static void *threadwicked(void *targ){  TCBDB *bdb = ((TARGWICKED *)targ)->bdb;  int rnum = ((TARGWICKED *)targ)->rnum;  bool nc = ((TARGWICKED *)targ)->nc;  int id = ((TARGWICKED *)targ)->id;  TCMAP *map = ((TARGWICKED *)targ)->map;  BDBCUR *cur = tcbdbcurnew(bdb);  bool err = false;  for(int i = 1; i <= rnum && !err; i++){    char kbuf[RECBUFSIZ];    int ksiz = sprintf(kbuf, "%d", myrand(rnum * (id + 1)));    char vbuf[RECBUFSIZ];    int vsiz = myrand(RECBUFSIZ);    memset(vbuf, '*', vsiz);    vbuf[vsiz] = '\0';    char *rbuf;    if(!nc) tcglobalmutexlock();    switch(myrand(16)){    case 0:      if(id == 0) iputchar('0');      if(!tcbdbput(bdb, kbuf, ksiz, vbuf, vsiz)){        eprint(bdb, "tcbdbput");        err = true;      }      if(!nc) tcmapput(map, kbuf, ksiz, vbuf, vsiz);      break;    case 1:      if(id == 0) iputchar('1');      if(!tcbdbput2(bdb, kbuf, vbuf)){        eprint(bdb, "tcbdbput2");        err = true;      }      if(!nc) tcmapput2(map, kbuf, vbuf);      break;    case 2:      if(id == 0) iputchar('2');      if(!tcbdbputkeep(bdb, kbuf, ksiz, vbuf, vsiz) && tcbdbecode(bdb) != TCEKEEP){        eprint(bdb, "tcbdbputkeep");        err = true;      }      if(!nc) tcmapputkeep(map, kbuf, ksiz, vbuf, vsiz);      break;    case 3:      if(id == 0) iputchar('3');      if(!tcbdbputkeep2(bdb, kbuf, vbuf) && tcbdbecode(bdb) != TCEKEEP){        eprint(bdb, "tcbdbputkeep2");        err = true;      }      if(!nc) tcmapputkeep2(map, kbuf, vbuf);      break;    case 4:      if(id == 0) iputchar('4');      if(!tcbdbputcat(bdb, kbuf, ksiz, vbuf, vsiz)){        eprint(bdb, "tcbdbputcat");        err = true;      }      if(!nc) tcmapputcat(map, kbuf, ksiz, vbuf, vsiz);      break;    case 5:      if(id == 0) iputchar('5');      if(!tcbdbputcat2(bdb, kbuf, vbuf)){        eprint(bdb, "tcbdbputcat2");        err = true;      }      if(!nc) tcmapputcat2(map, kbuf, vbuf);      break;    case 6:      if(id == 0) iputchar('6');      if(nc){        if(!tcbdbputdup(bdb, kbuf, ksiz, vbuf, vsiz)){          eprint(bdb, "tcbdbputdup");          err = true;        }      }      break;    case 7:      if(id == 0) iputchar('7');      if(nc){        if(!tcbdbputdup2(bdb, kbuf, vbuf)){          eprint(bdb, "tcbdbputdup2");          err = true;        }      }      break;    case 8:      if(id == 0) iputchar('8');      if(myrand(2) == 0){        if(!tcbdbout(bdb, kbuf, ksiz) && tcbdbecode(bdb) != TCENOREC){          eprint(bdb, "tcbdbout");          err = true;        }        if(!nc) tcmapout(map, kbuf, ksiz);      }      break;    case 9:      if(id == 0) iputchar('9');      if(myrand(2) == 0){        if(!tcbdbout2(bdb, kbuf) && tcbdbecode(bdb) != TCENOREC){          eprint(bdb, "tcbdbout2");          err = true;        }        if(!nc) tcmapout2(map, kbuf);      }      break;    case 10:      if(id == 0) iputchar('A');      if(!(rbuf = tcbdbget(bdb, kbuf, ksiz, &vsiz))){        if(tcbdbecode(bdb) != TCENOREC){          eprint(bdb, "tcbdbget");          err = true;        }        rbuf = tcsprintf("[%d]", myrand(i + 1));        vsiz = strlen(rbuf);      }      vsiz += myrand(vsiz);      if(myrand(3) == 0) vsiz += PATH_MAX;      rbuf = tcrealloc(rbuf, vsiz + 1);      for(int j = 0; j < vsiz; j++){        rbuf[j] = myrand(0x100);      }      if(!tcbdbput(bdb, kbuf, ksiz, rbuf, vsiz)){        eprint(bdb, "tcbdbput");        err = true;      }      if(!nc) tcmapput(map, kbuf, ksiz, rbuf, vsiz);      tcfree(rbuf);      break;    case 11:      if(id == 0) iputchar('B');      if(!(rbuf = tcbdbget(bdb, kbuf, ksiz, &vsiz)) && tcbdbecode(bdb) != TCENOREC){        eprint(bdb, "tcbdbget");        err = true;      }      tcfree(rbuf);      break;    case 12:      if(id == 0) iputchar('C');      if(!(rbuf = tcbdbget2(bdb, kbuf)) && tcbdbecode(bdb) != TCENOREC){        eprint(bdb, "tcbdbget2");        err = true;      }      tcfree(rbuf);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久9999亚洲精品| 秋霞影院一区二区| 日韩电影网1区2区| 东方aⅴ免费观看久久av| 欧美久久久久久久久久| 国产精品国产三级国产aⅴ中文 | 欧美日韩一区二区三区四区五区| 欧美sm美女调教| 亚洲国产精品一区二区尤物区| 国产成人av影院| 精品国产乱码久久久久久1区2区 | 久久久精品一品道一区| 天堂va蜜桃一区二区三区| 99国产精品99久久久久久| 久久亚洲春色中文字幕久久久| 亚洲成av人片一区二区三区| 91免费国产在线| 国产日产欧美一区二区视频| 精品一区二区在线看| 欧美放荡的少妇| 亚洲成精国产精品女| 色综合久久久久综合体| 国产精品久久久久影院| 国产成人免费av在线| 精品1区2区在线观看| 麻豆一区二区三区| 日韩你懂的电影在线观看| 日韩精品电影在线观看| 在线观看91av| 亚洲h在线观看| 欧美久久久一区| 男女男精品网站| 精品国产麻豆免费人成网站| 久久国产三级精品| 精品国产成人系列| 国产在线播放一区| 国产性天天综合网| 丁香婷婷深情五月亚洲| 国产精品夫妻自拍| 91同城在线观看| 亚洲成精国产精品女| 91精品欧美综合在线观看最新| 午夜久久福利影院| 日韩精品在线一区| 国产成人午夜精品影院观看视频| 久久精品视频一区| 99久久精品国产一区| 亚洲午夜免费视频| 日韩午夜激情免费电影| 国产精品自拍一区| 亚洲欧洲av在线| 在线播放91灌醉迷j高跟美女 | 亚洲欧美在线观看| 91极品美女在线| 日日夜夜精品免费视频| 久久夜色精品一区| 99久久免费视频.com| 亚洲一区二区美女| 日韩免费成人网| 成人久久久精品乱码一区二区三区 | 欧美喷潮久久久xxxxx| 麻豆精品视频在线观看免费| 国产午夜精品理论片a级大结局| 成人黄色综合网站| 视频在线观看一区| 中文字幕av一区二区三区免费看| 色噜噜狠狠色综合欧洲selulu| 肉色丝袜一区二区| 中文字幕第一区二区| 欧美日韩性生活| 福利一区福利二区| 日韩av不卡在线观看| 国产精品欧美综合在线| 91精品中文字幕一区二区三区| 成人一二三区视频| 午夜不卡在线视频| 中文字幕视频一区二区三区久| 5月丁香婷婷综合| av在线免费不卡| 奇米综合一区二区三区精品视频| 国产亚洲美州欧州综合国| 欧美午夜片在线观看| 国产91丝袜在线播放0| 视频精品一区二区| 亚洲视频 欧洲视频| 久久午夜电影网| 69精品人人人人| 色综合久久综合网| 国产成人综合网| 久久精品国产精品亚洲精品| 亚洲免费观看视频| 国产午夜精品美女毛片视频| 欧美精品免费视频| 在线精品观看国产| av激情亚洲男人天堂| 国产精品一区久久久久| 日韩激情视频网站| 亚洲一区二区高清| 亚洲精品国产一区二区三区四区在线 | 在线观看日韩电影| www.亚洲国产| 国产精品一区二区男女羞羞无遮挡| 亚洲va国产va欧美va观看| 中文字幕欧美一区| 国产免费久久精品| 久久综合丝袜日本网| 欧美成人福利视频| 精品日韩成人av| 日韩欧美你懂的| 日韩丝袜情趣美女图片| 91精品综合久久久久久| 666欧美在线视频| 欧美精品九九99久久| 欧美日韩高清在线播放| 欧美日韩一区二区三区高清| 欧美色手机在线观看| 在线观看亚洲专区| 91福利国产成人精品照片| 一本一本大道香蕉久在线精品| 99re66热这里只有精品3直播| 99久久综合狠狠综合久久| 成人av网站在线| 99国内精品久久| 日本韩国一区二区三区| 色噜噜久久综合| 在线不卡a资源高清| 欧美一区二区国产| 精品国产一二三| 国产精品不卡一区二区三区| 国产欧美精品一区二区色综合朱莉| 中文字幕乱码久久午夜不卡 | 亚洲国产视频一区| 亚洲国产一区在线观看| 男人的天堂久久精品| 国产一区二区视频在线| 国产91对白在线观看九色| 色综合天天视频在线观看| 在线看一区二区| 26uuu久久天堂性欧美| 国产精品福利一区| 午夜a成v人精品| 国产高清不卡二三区| 91高清视频在线| 欧美一卡二卡在线| 国产精品夫妻自拍| 日韩av电影免费观看高清完整版| 国产乱码一区二区三区| 在线免费不卡视频| 26uuu国产在线精品一区二区| 中文欧美字幕免费| 一区二区三区四区高清精品免费观看 | 一区二区在线观看视频| 日韩福利视频网| 成人h动漫精品一区二区| 日本韩国欧美一区二区三区| 欧美一区二区三区日韩| 综合电影一区二区三区| 日本大胆欧美人术艺术动态| 成人精品在线视频观看| 欧美丰满高潮xxxx喷水动漫| 中文字幕免费观看一区| 日韩高清在线不卡| 99视频国产精品| 精品精品国产高清一毛片一天堂| 亚洲精品国产第一综合99久久| 久久超级碰视频| 欧美日韩精品一区二区在线播放| 久久精品这里都是精品| 日韩精品免费视频人成| 91猫先生在线| 国产日韩欧美麻豆| 美女网站一区二区| 欧美日韩成人综合| 最新国产精品久久精品| 国产麻豆视频精品| 4438成人网| 亚洲成人午夜电影| 日本久久一区二区三区| 欧美激情一区二区在线| 久久99精品国产| 在线综合视频播放| 亚洲国产一区视频| 在线这里只有精品| 中文字幕一区二区不卡| 国产成人精品亚洲日本在线桃色| 欧美一级理论片| 偷拍一区二区三区四区| 欧美最猛性xxxxx直播| 亚洲蜜桃精久久久久久久| 成人视屏免费看| 欧美国产视频在线| 成人午夜精品一区二区三区| 欧美tickling挠脚心丨vk| 老司机免费视频一区二区三区| 69p69国产精品| 亚洲成av人片一区二区梦乃 | 日本欧美久久久久免费播放网| 欧美日韩综合在线| 五月婷婷另类国产| 欧美日韩dvd在线观看|