You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在内存中保存从流读取的未知长度数据?

读取未知长度流数据到内存的实现方案

我之前曾提出过相关问题,经反馈思路有误,现明确核心问题:从流中读取数据时,若无法提前知晓字节数量,该如何将这些数据保存到内存中供后续使用?

我构思的几种实现方案:

  • 使用mmap分配一块无冲突内存区域,必要时额外调用mmap扩容(缺点:内存管理逻辑较为繁琐)
  • 实现缓冲区链表结构,填满一个缓冲区后再分配下一个缓冲区(自行编写API的话,管理难度相对较低)
  • 在栈上分配一个指向缓冲区的指针数组(例如设置100个元素,每个缓冲区用malloc分配),假设读取的数据量不超过100*缓冲区大小(实现最简单,但鲁棒性最差)

我之前提出但被强烈否决的方案:

  • 用sbrk和brk实现自定义连续堆(可能会与malloc及所有依赖malloc的代码冲突——不过我个人并不在意,因为我的应用仅使用unistd中的API,且这是一个学习项目)

针对“读取并保存未知长度数据到内存”这一特定场景,是否存在标准实现方法或专门的函数可以直接解决该问题?


内容的提问来源于stack exchange,提问作者user129393192

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 01:17:05