第二章C言語例—Tokyo Cabinetのデータベース操作
3145 ワード
最近C言語のいくつかのライブラリに対するプログラミングを研究しています
まずは自然にTokyo Cabinetをインストール
以下はTokyo Cabinetに対する操作であり、具体的な解釈はコード-コードが最も良い解釈であることを見ることができる.
ファイル名は:tcbdb.c
コンパイル
実行結果
参考文献:
http://fallabs.com/tokyocabinet/
まずは自然にTokyo Cabinetをインストール
tar zxvf tokyocabinet-1.4.28.tar.gz
cd tokyocabinet-1.4.28/
./configure
make
make install
cd ../
以下はTokyo Cabinetに対する操作であり、具体的な解釈はコード-コードが最も良い解釈であることを見ることができる.
ファイル名は:tcbdb.c
/**
* Operate the Tokyo Cabinet
* @author zhoubaochuan
* @email:[email protected]
* @date:2011-07-13
* @gcc: gcc tcbdb.c -I/usr/local/include/ -L/usr/local/lib/ -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g --static
*/
#include <stdio.h>
/* Import the Tokyo Cabinet C's library*/
#include <tcbdb.h>
int main(int argc, char *argv[]){
char *datapath = "/opt/data/test/C/queue/tcbdb.db";
/* Allocate a region on memory */
char *dataname = (char *)tccalloc(1,1024);
TCBDB *db = tcbdbnew(); /* Create a B+ tree database object */
tcbdbsetmutex(db);
tcbdbtune(db,128,256, 32749,8,10,100);
tcbdbsetcache(db,1024,512);
tcbdbsetxmsiz(db,1024100);
if(!tcbdbopen(db,datapath,BDBOWRITER|BDBOREADER)){ /* Open a database file and connect a B+ tree database object. */
fprintf(stderr,"It is failure to open a database !
");
exit(1);
}
//free((void *)datapath);
//fprintf(stderr,"==============It is successful to open a database : ===============
");
char *key = "t_key";
char *value = "zhoubaochuan";
fprintf(stderr, "============== Store value. ================
key:%s;
value:%s
", key, value);
/* Store a new record into a B+ tree database object. */
tcbdbput2(db, key, value);
fprintf(stderr, "============== Retrieve a record. ================
");
/* Retrieve a record in a B+ tree database object as a volatile buffer. */
char *retrieve = tcbdbget2(db,key);
fprintf(stderr, "Retriver's Value:%s
", retrieve);
/* Synchronize updated contents of a B+ tree database object with the file and the device. */
tcbdbsync(db); /* */
/* Close a B+ tree database object. */
tcbdbclose(db);
return 0;
}
コンパイル
gcc tcbdb.c -I/usr/local/include/ -L/usr/local/lib/ -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g --static
実行結果
[root@zhoubc queue]# ./a.out
============== Store value. ================
key:t_key;
value:zhoubaochuan
============== Retrieve a record. ================
Retriver's Value:zhoubaochuan
参考文献:
http://fallabs.com/tokyocabinet/