博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10.openssl编程——文本数据库
阅读量:2243 次
发布时间:2019-05-09

本文共 1030 字,大约阅读时间需要 3 分钟。

10.1 
概述
openssl实现了一个简单的文本数据库,他可以从文件读取数据和将数据写到文件中,兵切可以根据关键字段来查询数据。
 
10.2 数据结构
typedef struct txt_db_st {
int num_fields; 表明文本数据库的列数
STACKP_OF(OPENSSL_PSTRING) *data; 用来存放数据,每一行数据组织成为一个字符串数组(每个数组值对应该行的一列),并将此数组地址push到堆栈中。
LHASH_OF(OPENSSL_STRING) **index; 哈希表数组,每一列对应一个哈希表。每一列都可以建哈希表,如果不建哈希表将不能查找改列数据。
int (**qual)(OPENSSL_STRING *);一个函数地址数组,数组的每个元素对应一列,进行插入该别哈希表前的过滤。
long error;
long arg1;
long arg2;
OPENSSL_STRING *arg_row;
}
 
 
10.3 函数说明
a.TXT_DB *TXT_DB_read(BIO *in, int num )
功能:用于从BIO中读入数据,转换为TXT_DB,num用于明确指明列数,本函数不建立哈希表
b.long TXT_DB_write(BIO *out, TXT_DB *db)
功能:将TXT_DB内容写入BIO;
c.int TXT_DB_create_index(TXT_DB *db, int field, int (*qual)(char **))
OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp)
给field指定的列建立哈希表。db为需要建索引的TXT_DB,hash为一行数据的hash 运算回调函数,cmp为一行数据的比较函数。
d.char **TXT_DB_get_by_index(TXT_DB *db, int idx, char **value)
功能:根据关键字段来查询数据,查询结果返回一行数据db为文本数据库,idx表明采用哪一列的哈希表来查找;value为查询条件。
e.int TXT_DB_insert(TXT_DB *db, char **value)
功能:往TXT_DB中插入一行数据。value数组以NULL表示结束。
f.void TXT_DB_free(TXT_DB *db)
功能:清除TXT_DB.

转载地址:http://omwdb.baihongyu.com/

你可能感兴趣的文章
Servlet的生命周期
查看>>
Object中的getClass()返回的是当前运行的类
查看>>
加载驱动程序的方法
查看>>
深入理解java异常处理机制
查看>>
object类的基本方法
查看>>
回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
查看>>
Dubbo分布式服务框架入门(附工程)
查看>>
两年Java开发工作经验面试总结
查看>>
作为Java面试官--谈谈一年来的面试总结
查看>>
两年Java程序员面试经
查看>>
面试心得与总结---BAT、网易、蘑菇街
查看>>
如何面试有2年java工作经验的应聘人员
查看>>
Java实现简单的递归操作
查看>>
面试Java程序员需具备的11个技能
查看>>
HashMap 和 HashTable 到底哪不同 ?
查看>>
Java实现简单的递归操作
查看>>
Struts2工作原理和执行流程图
查看>>
在线预览Word,Excel~
查看>>
hibernate延迟加载(get和load的区别)
查看>>
关于文件拷贝效率问题
查看>>