在上文中实现了最基本key->value的内部接口,也能满足一般的需求了。但这个有一个局限,就是一个key就是对应一个值类型,而平常的应用中,很有可能要保存一组相同的数组,类似数组或者List类型。比如查询类请求就可能会有这种需求,这样就需要对上文的数据结构再做一些扩展,可以加一个type类型来表示

type是common时就是普通的对应一个值,当type是list时就表示是一组值,而这组数据的每一个元素类似一个小Map。size表示给这

这组数据分配多少个元素,至于这个元素的定义通过ref与ListDataDef中的name(myListData)关联就知道了,这样就能计算出每个

元素占的空间,与size相乘就得到了key为listData的数据总共的大小。要实现这种方式需要类似二级映射的方法,上文中所说的内存中

的映射关系算第一级映射,先在一级映射中查找这组数据的基础偏移,当type是common那么就找到了,当时list时就通过ref去查找该

list定义的二级映射,那么就可以计算出每一个元素的每一个域的偏移,就可以访问了。

接口定义如下:

int getDataList(const void* pDataAddr, const char* szKey, struct DataList* pDataList);

int getDataInList(const void* pDataAddr, const struct DataList* pDataList,int iIdx, const char* szKey, const int iBufLen, char* szValue);

int petDataInList(void* pDataAddr, const struct DataList* pDataList, int iIdx, const char* szKey, const char* szValue)

DataList保存必要的List的上下文信息,比如基础偏移,二级映射的地址等,iIdx表示获取数组内的第几组元素,szKey自然表示或者某元素的某个数据的值。

这样,本内部接口的数据支持就比较完整了,应该可以适应大部分的应用。

c语言自制服务器之间调用文件夹,C语言实现一种简单的应用服务器内部数据结构的思路(三)...相关推荐

  1. C语言实现一种简单的应用服务器内部数据结构的思路(三)

    2019独角兽企业重金招聘Python工程师标准>>> 在上文中实现了最基本key->value的内部接口,也能满足一般的需求了.但这个有一个局限,就是一个key就是对应一个值 ...

  2. Ubuntu服务器之间传输文件夹/目录

    将当前Ubuntu服务器上某文件夹传输到另一台Ubuntu服务器目标文件夹下: scp -r [当前服务器上文件夹位置] [目标服务器用户名]@[目标服务器IP地址]:[目标文件夹绝对路径] 一般会要 ...

  3. 两个Liunx服务器之间的文件夹迁移

    一.说明 因为当时项目源码文件部署在A服务器中,现A服务器暂时使用,需把项目源码文件切换到B服务器,所以需要把A服务器的项目源码文件都复制过去,因为有点大,所以不可能说从A服务器导出来再导过去B服务器 ...

  4. 服务器之间传文件夹,文件夹内容为空

    项目背景 目标检测,两个框项目. 通过热成像txt文件生成热图,检测乳房和腹部的位置. 只处理用户的正面热成像txt文件. 从其他服务器获取,某个人的文件夹,改文件夹下有该用户的正面热成像图的txt文 ...

  5. centos服务器之间copy文件夹命令,复制文件与文件夹的CentOS常用命令

    复制文件与文件夹的CentOS常用命令 cp NO1. 复制指定目录的文件到当前目录,并重命名 [[email protected] root]# cp ~/.bashrc bashrc_bak NO ...

  6. c语言 不存在则创建文件夹,C语言判断文件所在路径和目录是否存在,不存在则创建...

    在编程的时候,我们经常会需要生成一些文件,而这些文件为了方便管理,会创建多级目录,有的时候文件所在的目录没有创建,比较麻烦,直接上代码 #ifdef WIN32 // 核查目录,若目录不存在,创建目录 ...

  7. Linux 两台服务器之间传输文件和文件夹

    今天处理一个项目要迁移的问题,突然发现这么多图片怎么移过去,可能第一时间想到的是先从这台服务器下载下来,然后再上传到另外一台服务器上面去,这个方法确实是可行,但是实在是太费时间了,今天我就教大家怎么快 ...

  8. 笔记本服务器管理器在哪个文件夹,笔记本云服务器在哪个文件夹

    笔记本云服务器在哪个文件夹 内容精选 换一换 本章节介绍如何将下载的证书安装到Resin服务器上.安装好证书后,您的Web服务器将能支持SSL通信,从而保证您Web服务器的通信安全.如果证书安装过程中 ...

  9. 服务器怎么解压文件夹,怎么在云服务器上解压文件夹

    怎么在云服务器上解压文件夹 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 该任 ...

最新文章

  1. linux和windows双系统引导,windows和linux双系统引导问题
  2. 如何画出漂亮的气象(实时流量)图
  3. php7 对象转数组,php7中为对象/关联数组进行解构赋值
  4. 想提升微服务容错性?试试这5种模式
  5. phpcms点赞:表情点击(的统计功能) - 代码剥离篇
  6. Flutter OpenContainer 容器转换过渡 Material Design 设计风格的实践
  7. python创意爱情代码大全-王牌花色-题解(Python代码)
  8. openwrt带宽测速
  9. javaweb--请求转发
  10. CSDN中用Markdown如何给文本加下划线(可延长下划线)
  11. html中常见标签及其用法归纳大全
  12. Vue中的 Filters 过滤器
  13. 痞子衡嵌入式:一表全搜罗常见低功耗广域物联网协议(NB-IoT/eMTC/LoRa/SigFox...)
  14. [M1]Daily Scum 9.28
  15. IterNet: Retinal Image Segmentation Utilizing Structural Redundancy in Vessel Networks
  16. Python数据分析pandas入门(一)------十分钟入门pandas
  17. vue项目中scrollTop如何使用
  18. 最近很火的人工智能ChatGPT可以实现“ 连续对话”机制
  19. 计算机系统ARM64拆除炸弹
  20. 2021-08-15 minikube在阿里云centos系统上的安装实践

热门文章

  1. 00.奇特的一生--序言(笔记)
  2. 目前计算机的发展处于第五代,计算机应用基础.pptx
  3. C语言之strcmp函数和strncmp函数
  4. unity抠人像原理_抠出精细发丝人像图片的PS抠图教程
  5. 常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)
  6. 畅游CTO洪晓健:BW和CE3游戏引擎各取所长
  7. 中国自动转换开关控制器行业市场供需与战略研究报告
  8. php mysql随机抽奖源码_幸运大转盘-jQuery+PHP实现的抽奖程序
  9. 脱了裤子放屁之std::string
  10. 二叉树的基本运算实验报告C语言,实验三 二叉树基本操作与应用实验