C语言snprintf追加拼接字符串
原文地址:https://www.cnblogs.com/liqinglucky/p/snprintf.html
在使用log函数打印时想打印整个结构体的值出来,但是结构体比较大,如果用log函数一行一行打印显示效果不好。就想用snprintf追加拼接字符串到一个buffer里,最后再把整个buffer打印出来。这样可以方便的调整buffer里的内容显示格式。
代码
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
#include <time.h>
#include <errno.h>
#include <arpa/inet.h>
#include <stdlib.h>
void structure_print(void)
{
const int MAX_BUF = 65535;
char* buf = malloc(MAX_BUF);
int len = 0;
len += snprintf(buf+len, MAX_BUF-len, "ipv4 : %s\n","172.1.10.1");
len += snprintf(buf+len, MAX_BUF-len, "ipv6 : %s\n","172:1:10::1");
printf("%s\n", buf);
free(buf);
}
int main(void)
{
structure_print();
return 0;
}