Questions tagged «buffer»

该标签用于有关内核缓冲区高速缓存(包括管道缓冲区)的问题。这些用于存储最近访问的文件和/或频繁访问的文件。

6
可以缓冲标准输入或文件的程序
除了使用临时文件提供帮助之外,还有一种方法/程序可以缓冲来自的输入,stdin但直到得到时才输出内容EOF。我也不想使用shell变量(例如buffer=$(cat))。 该程序的行为应如下所示(假设程序名称为buffered-cat): $ buffered-cat line 1 line 2 line 3 ^D # Ctr-D here(End of Line) 现在程序已接收^D,buffered-cat输出内容 line 1 line 2 line 3
12 shell  stdout  buffer 

1
Linux中的“泄漏”管道
假设您具有如下所示的管道: $ a | b 如果b停止处理stdin,则在一段时间后,管道将被填满,并将a对其的stdout 写入,将阻塞(直到b再次开始处理或终止)。 如果我想避免这种情况,可以尝试使用更大的管道(或更简单地说,是buffer(1)),如下所示: $ a | buffer | b 这只会给我带来更多的时间,但a最终最终会停止。 我很想拥有(对于我要解决的非常特殊的情况)是拥有一个“泄漏的”管道,该管道在充满时会从缓冲区中丢弃一些数据(理想的是逐行)以a继续处理(您可能会想到,在管道中流动的数据是消耗性的,即,处理数据的b重要性不如a能够不阻塞地运行)。 总结一下,我很想拥有一个有界,漏水的缓冲区: $ a | leakybuffer | b 我可能可以很容易地用任何一种语言来实现它,我只是想知道我是否缺少某些“准备使用”的东西(或者像bash单线的东西)。 注意:在示例中,我使用的是常规管道,但问题同样适用于命名管道 在授予以下答案的同时,我也决定实施LeakyBuffer命令,因为以下简单解决方案有一些局限性:https : //github.com/CAFxX/leakybuffer
12 linux  pipe  fifo  buffer 

4
在传递到另一个命令之前完全缓冲命令输出?
有没有一种方法可以在没有临时文件的情况下只执行另一个命令?我有一个运行时间更长的命令,另一个具有格式化输出并使用curl将其发送到HTTP服务器的命令。如果我只是执行commandA | commandB,commandB将启动curl,连接到服务器并开始发送数据。因为commandA花费了很长时间,所以HTTP服务器将超时。我可以做我想做的事commandA > /tmp/file && commandB </tmp/file && rm -f /tmp/file 出于好奇,我想知道是否有没有临时文件的方法。我尝试过,mbuffer -m 20M -q -P 100但是卷曲过程仍然在一开始就开始了。Mbuffer一直等到commandA实际发送数据完成为止。(数据本身最大只有几百kb)
10 shell  pipe  buffer 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.