1e41f4b71Sopenharmony_ci# zlib
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci## 简介
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci[Zlib](https://zlib.net/)是基于C/C++语言实现的一个通用的数据压缩库。
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci## 支持的能力
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ciZlib库提供了内存中(in-momery)压缩、解压缩数据的能力,使用Deflate算法,可以设置不同的压缩级别,对各种类型的数据均有比较好的压缩效果;提供了对处理器和内存使用控制的能力,如果缓冲区足够大,压缩可以通过一个步骤完成,否则可以通过反复调用压缩接口完成。
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci默认情况下,Zlib接口使用的压缩数据格式是zlib格式([RFC1950](https://www.rfc-editor.org/rfc/rfc1950)),Zlib库还支持使用以“gz”开头的函数接口读取和写入gzip([RFC1952](https://www.rfc-editor.org/rfc/rfc1952))格式的文件。zlib格式的设计目的是在内存和通信通道中使用,紧凑且快速。gzip格式是专为单个文件压缩而设计,其头部比zlib大,以维护目录信息,使用了与zlib不同且较慢的检查方法。
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ciZlib库解码器会检查压缩数据的一致性,因此即使在输入损坏的情况下,库也不应崩溃。
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## 引入zlib能力
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci如果开发者需要使用zlib相关功能,首先请添加头文件:
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci```c
20e41f4b71Sopenharmony_ci#include <zlib.h>
21e41f4b71Sopenharmony_ci```
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci其次在CMakeLists.txt中添加以下动态链接库:
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci```
26e41f4b71Sopenharmony_cilibz.so
27e41f4b71Sopenharmony_ci```
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci## 接口列表
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci详见[Zlib库支持的接口文档](https://www.zlib.net/manual.html)。
32