### 6.1.1 干什么 `string.h` 是 C 标准库头文件,由 glibc 提供声明。它覆盖两类用户态操作:以 `'\0'`(NUL 结束符,值为 0 的字节,C 字符串的终止标记)界定的字符串操作,与按长度界定的内存块操作。它负责复制、比较、查找、拼接、填充与按令牌切分。格式化输入输出由 `stdio.h` 承担,数值转换与堆分配由 `stdlib.h` 承担,均不在本库范围。 C 字符串是一段连续字符数组,以 `'\0'` 结尾,库函数只凭该结束符判断字符串长度,不持有目标缓冲的容量信息。因此本库函数本身不做边界校验,目标缓冲是否放得下由调用方负责。本库全部函数为纯用户态内存操作,不发起独立系统调用。 ### 6.1.2 谁在调 * C/C++ 标准库自身的格式化输出(`printf` 系列)、输入解析与内存分配例程,内部调用 `memset`/`memcpy` 布置与初始化缓冲。 * Nginx 在复制配置字符串、拷贝请求头与转发缓冲区时调用 `strncpy`/`memcpy`,按已知容量控制复制长度。 * Redis 处理字符串对象与 SDS(si