文章目录

  • 一、配置文件读写 业务逻辑
  • 二、接口设计

1、写文件接口2、读文件接口3、修改文件接口4、接口合并

一、配置文件读写 业务逻辑


开发一个系统 , 在命令行中实现如下功能 , 通过命令操作 ,

  • ​写文件 :​ 输入 Key-Value 键值对 , 将键值对保存到文件中 ;
  • ​读文件 :​ 输入 Key 键 信息 , 查询该 Key 键 对应的 Value 值 信息 ;
  • ​修改文件 :​ 输入 Key-Value 键值对 , 将新的键值对更新到文件中 ;

二、接口设计


1、写文件接口

​写文件接口 :​ 写文件时 , 需要一个文件名称 , Key-Value 键值对 字符串 ;

这 3 3 3 个参数值都不需要修改 , 使用 const 修饰 3 3 3 个参数 , const 修饰指针时 , 左数右指 , 这里在 * 左侧修饰 指针 , 将指针设置为常量 ;

int write_cfg(const char *filename, const char *key, const char *value)

​上述 3 3 3 个函数形参 , 都作为输入 ;​

2、读文件接口

​读文件接口 :​ 度文件时 , 需要一个文件名称 , Key 键 字符串 , Value 值 需要当做返回值使用 , 这里使用二级指针 ;

这 3 3 3 个参数值中 , 文件名 和 Key 键 都不需要修改 , 使用 const​ 修饰这 2 2 2 个参数 , ​const 修饰指针时 , 左数右指 , 这里在 * 左侧修饰 指针 , 将指针设置为常量 ;

指向 Value​ 值一级指针 的二级指针 , 需要修改 , Value​ 值 不能使用 const 修饰 ;

int read_cfg(const char *filename, const char *key, char **value)

上述 const char *filename​ 和 const char *key​ 2 2 2 个形参是输入 , ​char **value 形参作为输出 ;

3、修改文件接口

​修改文件接口 :​ 修改文件时 , 需要一个文件名称 , Key-Value 键值对 字符串 ;

这 3 3 3 个参数值都不需要修改 , 使用 const 修饰 3 3 3 个参数 , const 修饰指针时 , 左数右指 , 这里在 * 左侧修饰 指针 , 将指针设置为常量 ;

int update_cfg(const char *filename, const char *key, const char *value)

​上述 3 3 3 个函数形参 , 都作为输入 ;​

​修改 文件 的前提是 , 调用者知道该文件中 已经保存了哪些文件 ;​

4、接口合并

写文件 和 修改文件 这两个功能 可以进行合并 ;

输入 Key-Value 键值对时 , 查询该文件中 , 是否已经存在 Key 键值 , 如果不存在 , 则新增数据 ( 写文件 ) , 如果存在 则 更新数据 ( 修改文件 ) ;