u_char * ngx_cdecl
ngx_snprintf(u_char *buf, size_t max, const char *fmt, ...)
对这个函数的返回值一直比较迷惑,今天特别调试了一下,发现这个函数的返回值指的是buf这个缓冲区中,下一个位置,也就是p的前面的位置已经被函数里面的内容填充了。
但是特别注意的是,如果buf里面已经被写满了,那么p指向的位置实际上已经不属于buf这个数组所包含的地址了。
但是无论如何, 通过p-buf总是能算出有多少内容被写入了buf中。
那么当p-buf=max的时候,显然就写满了。而且当写满的时候,我们是无法判断出是否东西都已经被正确写入了buf. 但是如果p-buf
注意:该函数是不会写'\0'到buf的末尾的!
阅读(5469) | 评论(0) | 转发(0) |