定义在 src\core\ngx_string.c
u_char *
ngx_cpystrn(u_char *dst, u_char *src, size_t n)
{if (n == 0) {return dst;}while (--n) {*dst = *src;if (*dst == '\0') {return dst;}dst++;src++;}*dst = '\0';return dst;
}
ngx_cpystrn 函数的作用是安全地将源字符串(src)拷贝到目标缓冲区(dst),最多复制 n-1 个字符 ,并确保目标字符串以空字符('\0')终止。
if (n == 0) {return dst;}
长度为0,直接返回
while (--n) {*dst = *src;if (*dst == '\0') {return dst;}dst++;src++;}
循环,逐字节复制 到 目标内存区
如果遇到 字符串结束标志 返回
指针后移,进入下一次循环
while 循环 先减一 再进入的循环,所以 循环次数最多 n-1
*dst = '\0';return dst;
添加结束标志
返回