C:我可以使用Snprintf(buffer,buffersize,buffer,..)吗?

时间:2018-07-05 14:47:39

标签: c printf buffer

我有一个这样的大型结构来托管我的“ html页面”:

char * HTML_PAGES_ARRAY[n];

我要填充例如这样的页面:

HTML_PAGES_ARRAY[0] = "<h1> Hello %s <h/1>\0"

现在,在我的子程序中,我正在调用一个函数,该函数必须将数组发送回主程序才能将数组发送回客户端。

所以我必须模拟流传输,因为我的所有html页面都可能不适合数组。另外,如您所见,我希望使用可变参数来定制html页面。

我想分配尽可能少的内存。 (嵌入式设备)

这就是我的想法

        #define DEFAULT_BUFLEN 2000         
        char* str= malloc(sizeof(DEFAULT_BUFLEN));
        memset(str, '\0', sizeof(DEFAULT_BUFLEN));
        snprintf(str, strlen(HTML_PAGES_ARRAY[0]), HTML_PAGES_ARRAY[0], value1);

        //answer being the first buffer I talked about, simulating streaming, to send it back to the main program
        strcpy(answer, str+(*count-1)*(answerSize-1));
        //count being a parameter (an integer to parse my html page), answerSize being the size of my stream buffer answer also placed as parameter

它实际上工作正常,但我不想分配该str缓冲区。

有没有办法做到这一点,而是使用snprintf来使用相同的缓冲区(例如:snprintf(buffer,buffersize,buffer,...))吗?

或者其他任何想法?

0 个答案:

没有答案