2

我在使用缓冲区时遇到问题:

我有一个守护进程D,它的监视器M。D在M之前启动,M将任何相关信息打印到tty,我需要解析这些信息并将其交给我自己的程序。

由于我想自动执行此操作,因此 M 应该打印到文件中。但是直到守护进程被杀死,因为缓冲区。

所以我正在考虑记录 tty,因此尝试使用脚本将输出记录到终端但是......它也被缓冲了......

我还尝试访问 gnu coreutils(以使用我显然需要的 stdbuf),但是当我无法安装该实用程序以解压缩 GNU 网站上提出的特殊 .xz 格式时不得不放弃!

我担心我什至没有做正确的事!对于这个问题,难道没有一个简单的解决方案,可能每个实时工作的人都有吗?

一点帮助将不胜感激。谢谢。

4

1 回答 1

1
  1. .xz 文件格式可以用xz7zip
  2. 似乎也有一个 LD_PRELOAD hack 来实现相同的结果: http: //lists.gnu.org/archive/html/bug-coreutils/2008-11/msg00164.html

此页面是我对 stdio 缓冲的首选参考:http ://www.pixelbeat.org/programming/stdio_buffering/

PS。“每个使用实时工作的人”大概都使用 IPC 并且不依赖 bash。Perl、python 和显然所有低级语言都提供了显式禁用/启用缓冲的方法

于 2011-06-01T13:36:03.960 回答