2010-09-16 95 views
0

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

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

回答

1

没有任何特别简单的方法来做你想要做的事情。

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

请注意curl将挂起,直到从FIFO中读取进程。当读取FIFO的过程退出时,curl将收到一个SIGPIPE信号或一个写入错误,其中任何一个都会使其停止。

相关问题