C语言中没有C++语言中map键值对容器的数据结构,为在C语言中提供一种hashmap数据结构,并提供hashmap的操作方法,具体包括新建、释放、清除、获得缓存数据量、设置数据、获取数据、浏览数据等操作,基于hashmap的开源代码很丰富,本文不介绍如何设计hashmap的具体函数,仅介绍linux环境下开源hashmap的使用与测试,具体测试了两种键值(字符串键值和数值键值)。具体操作流程如下所述:
1.首先在github下载hashmap的开源源码压缩包,下载路径和下载方法如下所示:
https://github.com/tidwall/hashmap.c/tags
2.拷贝hashmap的源码压缩包到工作目录,并解压hashmap源码,如下图所示:
3.在解压的目录下新建main.c的主控程序,主控程序中定义了user和student两种类型的结构体,其中user结构体类型用于验证hashmap的数值键值,student结构体类型用于验证hashmap的字符串键值。具体程序如下所示:SourceURL:file:///home/lsl/work/gitwork/record_debug/05_ubuntu_linux/服务器ubuntu系统维护配置、调试记录.docx
4.新建Makefile文件,如下图所示:
5.新建编译脚本build.sh,如下图所示:
6.给编译脚本添加可执行权限,并运行编译脚本,生成可执行文件如下图所示:
7.运行可执行文件,验证hashmap的新建,写入,读取和释放。
结论:
- hashmap的验证在ubuntu20.4的linux上编译,运行和测试,如使用其他版本linux系统,编译结果可能存在差异;
- hashmap的源码使用开源代码,不同的hashmap源码验证结果可能存在差异。