【问题标题】:c stream bufferc流缓冲区
【发布时间】:2011-11-14 00:09:00
【问题描述】:

我正在使用 C 并且需要一个流缓冲区机制,我可以写入任意字节两个并从中读取字节。我更喜欢独立于平台的东西(或者至少可以在 osx 和 linux 上运行)。有没有人知道我可以加入的任何宽松的轻量级库或代码?

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

【问题讨论】:

    标签: stream buffer


    【解决方案1】:

    如果您不介意依赖 C++ 和可能的一些 STL,您可以使用 std::stringstream。围绕它编写一个精简的 C 包装器应该不会太难。

    【讨论】:

    • s/STL/the C++ Standard Library。 STL 没有 std 命名空间。
    • @Tomalak:我可能实际上是指“使用模板的东西”(我不确定std::basic_string<>/etc 有多少通过模板实例化增加了您的代码大小)。但是std::vector 一直为我工作......
    • 我认为你误解了我的意思。
    【解决方案2】:

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 2019-06-19
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多