大多数主流的Linux发行版中都会默认安装gdbm,但也有一些发行版需要自己安装,我用的是win10下面的Ubuntu,没有自带的gdbm,只好自己安装。
对于不同的Linux发行版,编译使用ndbm库的源文件所需的包含库和链接库略有不同。所以书上介绍了两种gdbm兼容ndbm的方法:
一:默认安装了gdbm
(1)在C源文件中包含头文件ndbm.h
(2)使用编译行选项-I/usr/include/gdbm包含头文件目录/usr/include/gdbm。
(3)使用编译行选项-lgdbm链接gdbm库。
二:自己安装
(1)在C源文件中包含头文件gdbm-ndbm.h而不是ndbm.h。
(2)使用编译行选项-I/usr/include/gdbm包含头文件目录/usr/include/gdbm。
(3)使用编译行选项-lgdbm_compat -lgdbm连接其他的gdbm兼容库。
但在我看来书上有的能解决问题,我在这里写的就是废话!
我自己安装gdbm后以上两种方法都不好用,所以就干脆直接使用gdbm了。
一、数据结构的区别
1. GDBM_FILE
打开库后返回数据类型 GDBM_FILE 和 DBM * 的作用一致
typedef struct gdbm_file_info *GDBM_FILE;
2. 其它数据类型可打开头文件gdbm.h自行