ngx_sprintf
定义在 src\core\ngx_string.c
u_char * ngx_cdecl
ngx_sprintf(u_char *buf, const char *fmt, ...)
{
u_char *p;
va_list args;
va_start(args, fmt);
p = ngx_vslprintf(buf, (void *) -1, fmt, args);
va_end(args);
return p;
}
底层实现依赖于
ngx_vslprintf
va_start(args, fmt);
初始化
args
,使其指向可变参数的起始位置(即fmt
之后的第一个参数)
p = ngx_vslprintf(buf, (void *) -1, fmt, args);
调用 ngx_vslprintf
将格式化内容写入
buf
buf
:输出缓冲区。
(void *) -1
:特殊标志,表示不限制输出长度
fmt
:格式字符串。
args
:可变参数列表。返回值 :
p
指向格式化后的字符串末尾(含终止符\0
)
ngx_vslprintf-CSDN博客
va_end(args);
清理
args
,结束可变参数的遍历
return p;
返回格式化后的字符串末尾指针