C语言snprintf追加拼接字符串

发布时间 2023-06-28 10:08:22作者: liqinglucky

原文地址: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;
}

参考

如何使用sprintf追加字符串? | 那些遇到过的问题 (1r1g.com)