2

我在后台运行了一些管道进程,这些进程已经运行了一天多。

$ cmd | cmd | cmd | cmd | cmd > file

是否可以刷新所有管道,以便我可以看到文件中的当前状态?

4

1 回答 1

2

解决方案

编译

#include <stdio.h>
#include <unistd.h>
#include <sys/errno.h>
int main(int argc, char **argv){
  fflush(NULL);
  if (!errno) sync();
  return errno;
}

比如说,fflush但是它在~/bin/opt/bin/usr/local/bin取决于你的个人偏好和权限,确保这个命令在你的路径中并简单地使用它。

讨论

这个(简单!)东西在通常的工具集中不存在的事实表明它很少有用:通常这会挫败操作系统变得聪明的尝试并使事情变慢。更糟糕的是,使用像您展示的那样的扩展管道,它可能会以“错误”的顺序冲洗管道,而不会比以前更确定当前的进度。

于 2013-01-07T16:42:50.513 回答