RECNO - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
recno-记录号数据库访问方法
语法
#include <sys/types.h> #include <db.h>
说明
请注意:此页面记录了glibc所提供的接口,直至2.1版。从2.2版开始,glibc不再提供这些接口。可能您正在寻找libdb库提供的API。
例程dbopen(3)是数据库文件的库接口。受支持的文件格式之一是记录号文件。数据库访问方法的一般说明在dbopen(3)中,此手册页仅描述了recno特定的信息。
记录号数据结构是以平面文件格式存储的可变记录或定长记录,可通过逻辑记录号访问。记录号5的存在意味着记录1到4的存在,并且删除记录号1导致记录号5被重新编号为记录号4,并且光标(如果位于记录号1之后)将向下移动。一条记录。
提供给dbopen(3)的特定于recno访问方法的数据结构在包含文件中定义如下:
typedef struct { unsigned long flags; unsigned int cachesize; unsigned int psize; int lorder; size_t reclen; unsigned char bval; char *bfname; } RECNOINFO;
此结构的元素定义如下:
- flags
- The flag value is specified by ORing any of the following values:
- cachesize
- 内存缓存的建议最大大小(以字节为单位)。该值仅供参考,访问方法将分配更多的内存,而不是失败。如果cachesize为0(未指定大小),则使用默认缓存。
- psize
- recno访问方法将其记录的内存中副本存储在btree中。该值是用于该树中节点的页面大小(以字节为单位)。如果psize为0(未指定页面大小),则根据基础文件系统I / O块大小选择页面大小。有关更多信息,请参见btree(3)。
- lorder
- 存储的数据库元数据中整数的字节顺序。该数字应将订单表示为整数;例如,大端顺序为4,321。如果lorder为0(未指定顺序),则使用当前主机顺序。
- reclen
- 固定长度记录的长度。
- bval
- 用于标记长度可变记录的记录的定界字节,以及用于固定长度记录的填充字符。如果未指定任何值,则使用换行符(" \ n")标记可变长度记录的结尾,并用空格填充固定长度记录。
- bfname
- recno访问方法将其记录的内存中副本存储在btree中。如果bfname为非NULL,则它指定btree文件的名称,就像指定为btree文件的dbopen(3)的文件名一样。
RECNO访问方法使用的键/数据对的数据部分与其他访问方法相同。关键是不同的。键的数据字段应该是指向包含文件中定义的recno_t类型的存储位置的指针。此类型通常是可用于实现的最大无符号整数类型。密钥的大小字段应为该类型的大小。
因为没有与基础recno访问方法文件相关的元数据,所以每次打开文件时,都必须明确指定对默认值(例如,固定记录长度或字节分隔符值)的任何更改。
在dbopen(3)指定的接口中,如果记录数比数据库中当前的最大记录多一个,则使用put接口创建新记录将导致创建多个空记录。
BUGS
仅支持大小端字节顺序。
另外参见
btree(3),dbopen(3),hash(3),mpool(3)
关系数据库系统中的文档处理,Michael Stonebraker,Heidi Stettner,Joseph Kalash,Antonin Guttman,Nadene Lynn,备忘录编号UCB / ERL M82 / 32,1982年5月。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。