c流缓冲区

时间:2011-09-09 18:06:19

标签: stream buffer

我正在使用C并需要一个流缓冲机制,我可以写任意字节2并从中读取字节。我更喜欢与平台无关的东西(或者至少可以在osx和linux上运行)。是否有人知道任何允许的轻量级库或代码比我可以放入?

我在libevent中使用了缓冲区,我可能最终会走这条路线,但是当我不做任何基于事件的事件时,将libevent作为依赖关系似乎有点过分。

2 个答案:

答案 0 :(得分:0)

如果你不介意依赖于C ++和可能的一些STL,你可以使用std :: stringstream。在它周围写一个薄的C包装应该不会太困难。

答案 1 :(得分:0)

setbuf(3)(及其别名)是您要搜索的“机制”吗?

请考虑以下示例:

#include <stdio.h>

int main()
{
  char buf[256];
  setbuffer(stderr, buf, 256);
  fprintf(stderr, "Error: no more oxygen.\n");
  buf[1] = 'R';
  buf[2] = 'R';
  buf[3] = 'O';
  buf[4] = 'R';
  fflush(stderr);
}