【问题标题】:create a rolling buffer in bash在 bash 中创建滚动缓冲区
【发布时间】:2010-09-16 04:03:20
【问题描述】:

我想使用 curl 从远程服务器获取流,并将其写入缓冲区。到目前为止一切顺利,我只做curl http://the.stream>/path/to/thebuffer。事情是我不希望这个文件变得太大,所以我希望能够删除文件的第一个字节,因为我同时添加到最后一个字节。有没有办法做到这一点?

或者,如果我可以将 n 个字节写入缓冲区 1,然后切换到缓冲区 2、缓冲区 3 .. 当到达缓冲区 x 时删除缓冲区 1 并重新开始 - 不会丢失来自 curl 的数据(这是一个实时流,所以我可以不要停止卷曲)。我一直在阅读 curl 和 cat 的手册页并阅读,但看不到任何有希望的内容。

【问题讨论】:

    标签: bash curl shell


    【解决方案1】:

    没有什么特别简单的方法可以做你想做的事。

    可能最近的方法会创建一个 FIFO,并将curl 的输出重定向到 FIFO。然后你有一个程序,如splitcsplit 读取 FIFO 并写入不同的文件。如果您决定拆分程序不是工具,您可能需要在它们上编写自己的变体。然后,您可以决定如何处理创建的文件,以及何时删除它们。

    请注意,curl 将挂起,直到有进程从 FIFO 读取。当读取 FIFO 的进程退出时,curl 将收到一个 SIGPIPE 信号或一个写入错误,两者都应该停止它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 2015-08-25
      相关资源
      最近更新 更多