`
pvnz95pvnz
  • 浏览: 13043 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

TC官方文档翻译03----可扩充字符串API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)

 
阅读更多

  /**  * 转载请注明出处, 由于个人技术能力有限, 英语水平欠缺,
  * 有翻译不合适或错误的地方, 请纠正, 
  * 希望不要因为我的错误误导您, 希望您的智慧可以加入.
  * @translator: selfimpr
  * @mail: lgg860911@yahoo.com.cn
  * @blog: http://blog.csdn.net/lgg201
  */ typedef struct {           char *ptr; //字符串指针
  int size; //当前字符串占用大小
  int assize; //字符串对象当前分配的内存大小
  } TCXSTR;
  TCXSTR *tcxstrnew(void);
  创建一个可扩充字符串.
  函数首先分配一个TCXSTR结构的内存, 然后为其内部的ptr分配初始的TCXSTRUNIT(默认12)大小内存, 设置size为0, assize为TCXSTRUNIT, 将ptr[0]设置为\0(也就是设置为空字符串)
  TCXSTR *tcxstrnew2(const char *str);
  指定一个字符串作为初始值创建一个可扩充字符串对象
  返回的可扩充字符串对象是按照str量身定做, 但是如果str长度加1小于TCXSRUNIT时, 该字符串的分配内存会是TCXSTRUNIT.
  TCXSTR *tcxstrnew3(int asiz);
  指定一个初始内存大小来创建一个可扩充字符串对象.
  与tcxstrnew相似, 不过在为ptr分配内存时, 按照指定的asiz而不是TCXSTRUNIT
  TCXSTR *tcxstrdup(const TCXSTR *xstr);
  复制指定的可扩充字符串, 但是, 新的可扩充字符串中的asize是取xstr的size+1和TCXSTRUNIT两者的大值.
  void tcxstrdel(TCXSTR *xstr);
  释放指定的可扩充字符串对象.
  void tcxstrcat(TCXSTR *xstr, const void *ptr, int size);
  该函数用来连接字符串, 将ptr的size个字符连接到xstr字符串末尾
  函数中首先计算新字符串的长度, 然后对xstr的asize进行扩充(每次2倍)知道其大小适合新字符串存储, 重新分配内存, 内存拷贝, 然后修改xstr的size, 为字符串追加字符串结束符.
  void tcxstrcat2(TCXSTR *xstr, const char *str);
  与tcxstrcat类似, 不过是将str全部连接到xstr上.
  const void *tcxstrptr(const TCXSTR *xstr);
  返回可变字符串中存储的字符串的值, 可以直接作为字符串使用.
  int tcxstrsize(const TCXSTR *xstr);
  返回当前该可扩充字符串对象中实际存储的字符串的大小
  void tcxstrclear(TCXSTR *xstr);
  将指定的可扩充字符串对象中已经存储的字符串设置为空字符串(直接将该指针指向\0), 并将xstr->size设置为0
  char *tcxstrprintf(TCXSTR *xstr, const char*format, …);
  格式化一个可扩充字符串对象
  返回的指针可以用free释放.
分享到:
评论

相关推荐

    Tokyo-Cabinet.tar.gz

    Tokyo-Cabinet.tar.gz

    tokyocabinet-lua-1.10.tar.gz_TOKYO_Tokyo Cabinet

    Tokyo cabinet C 库的Lua绑定接口。 Tokyo cabinet 是一个管理数据库的库。...二进制数据和字符串都可作为关键字或值。每个关键字必须唯一。没有数据表和数据类型的概念。记录以哈希表、b树和定长数据组织。

    tokyocabinet-java-1.24.tar.gz_TOKYO_Tokyo Cabinet java_tokyocabi

    Tokyo cabinet C 库代码的Java绑定接口。 Tokyo cabinet 是一个管理数据库的库。...二进制数据和字符串都可作为关键字或值。每个关键字必须唯一。没有数据表和数据类型的概念。记录以哈希表、b树和定长数据组织。

    PHP tokyo cabinet扩展

    尝试开发PHP的扩展,仅用于学习。目前仅能够在windows下编译通过。 Linux下的tokyo cabinet API与Windows与差别,写的时候是在windows下,准备在linux下编译时才发现tokyo cabinet API在Unix下与Windows下是不一样的

    tokyo-cabinet-cookbook:安装 Tokyo Cabinet 并为 ROMA 设置

    东京橱柜食谱 使用 Chef 安装东京橱柜。 支持的平台 支持以下平台: ...在节点的run_list包含tokyo-cabinet : { " run_list " : [ " recipe[tokyo-cabinet::default] " ] } 作者 作者:坂锐( )

    Tokyo Cabinet Key:Value数据库及其扩展应用

    Tokyo Cabinet Key-Value数据库及其扩展应用

    tokyo cabinet tyrant研究资料

    tokyo cabinet tyrant研究资料

    Tokyocabinet-Tokyotyrant文档大合集

    Tokyo Cabinet 是一个DBM的实现。这里的数据库由一系列key-value对的记录构成。key和value都可以是任意长度的字节序列,既可以是二进制也可以是字符串。这里没有数据类型和数据表的概念。 当做为Hash表数据库使用时,...

    tokyocabinet-perl-1.34.tar.gz_TOKYO

    Tokyo cabinet C库的Perl绑定代码API。 Tokyo cabinet 是一个管理数据库的库。该数据库是一个单一的数据文件,每个记录为关键字和值。每个关键字和值是可变长度的字节序。二进制数据和字符串都可作为关键字或值。每...

    \Program Files\Microsoft Platform SDK for Windows Server 2003 R2 LIB文件

    2006-03-03 23:23 4,234 Cabinet.Lib 2006-03-03 23:23 2,146 Cap.Lib 2006-03-03 23:23 122,314 CiUuid.Lib 2006-03-03 23:23 26,302 ComCtl32.Lib 2006-03-03 23:23 7,220 ComDlg32.Lib 2006-03-03 23:23 538 ...

    tokyocabinet-ruby-1.31.tar.gz_TOKYO_TokyoCabinet

    Tokyo cabinet C 库的 Ruby绑定代码API Tokyo cabinet 是一个管理数据库的库。该数据库是一个单一的数据文件,每个记录为关键字和值。每个关键字和值是可变长度的字节序。二进制数据和字符串都可作为关键字或值。每...

    Tokyo Cabinet-开源

    东京内阁是QDBM的后继者,QDBM是与DBM系列类似的高性能数据库库。 它还支持哈希和B树数据库,不需要任何服务器进程。 与QDBM相比,整体速度有所提高。

    cabinet-api-client-mirror

    cabinet-api-client 该库提供对通用Cabinet API的访问。用法 var cabinetApi = require ( 'cabinet-api-client' ) ; var config = { apiUrl : 'http://localhost:8080/api' ,timeout : 60000 ,username : 'username'...

    Laravel开发-cabinet

    Laravel开发-cabinet Laravel 4文件上传包。

    Microlog Cabinet Manager 2003

    Microlog Cabinet Manager 2003 is a utility for opening and creating Microsoft CAB compressed files. CAB is a file compression format used by Microsoft to distribute many of their products, including ...

    精通Windows.API-函数、接口、编程实例.pdf

    15.2.5 字符串表 469 15.3 安装程序setup.exe的编号 469 15.4 使用msi文件进行安装 472 15.4.1 Windows Installer Service 472 15.4.2 msi文件的创建与修改工具orca.exe 474 15.4.3 准备工作 475 15.4.4...

    Laravel开发-ng-cabinet

    Laravel开发-ng-cabinet [拉拉基特]

    nezha:哪吒(Nezha)是一个基于Tokyo Cabinet的简单分布式KV存储系统原型

    哪吒(Nezha)是中国神话故事里的少年战神,我们以其作为基础Tokyo Cabinet的简单分布式KV存储系统原型项目的代号。 它包含configdb lib(configdb.h / libconfigdb.so)和一个命令行测试程序(Nezha) 执行make ...

    HP AlphaServer ES47系统配置手册(Cabinet)

    ES47 2型可支持2个主频为1.OGHz的Alpha 21364(EV7)微处理器和容量高达146GB的内部热插硬盘((2个72.8GB的SCSI硬盘)。通过组合使用内部I/O插槽和1个外部I/O扩展抽屉它还可支持多达16个PCI/PCI-X I/O插槽和2个AGP 2X...

Global site tag (gtag.js) - Google Analytics