c中无限大小的字符串缓冲区

dru*_*key 2 c string buffer char

我正在创建一个“字符串”

char buffer[BUFFER_SIZE]
Run Code Online (Sandbox Code Playgroud)

但是当它变满时,我想将它连接到一个预先存在的字符串上,但它需要具有无限长度并重复这个过程,直到我读完所有数据。

关于我如何做到这一点的任何想法?

f3x*_*3xy 5

我过去曾使用open_memstream来实现这一点。

此函数打开一个流以写入缓冲区。缓冲区使用 malloc 动态分配并根据需要增长。关闭流后,您有责任使用 free 或 realloc 清理此缓冲区。

https://www.gnu.org/software/libc/manual/html_node/String-Streams.html

#include <stdio.h>

int
main (void)
{
  char *bp;
  size_t size;
  FILE *stream;

  stream = open_memstream (&bp, &size);
  fprintf (stream, "hello");
  fflush (stream);
  printf ("buf = `%s', size = %zu\n", bp, size);
  fprintf (stream, ", world");
  fclose (stream);
  printf ("buf = `%s', size = %zu\n", bp, size);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)