如何在运行脚本时生成GNU Octave自动刷新结果

时间:2016-01-04 03:17:37

标签: printf echo octave

当脚本函数正在运行时,fprintfdisp命令产生的结果不会显示在终端中,只有当执行结束(或者它已停止)时才显示。 fflush解决了这个问题,但每次打印后使用都很繁琐。有没有办法自动刷新到终端?

使用版本3.8.1。

2 个答案:

答案 0 :(得分:4)

要自动自动刷新内容,请设置:

page_output_immediately (1);

并将其发送到没有寻呼机的stdout,设置:

page_screen_output (0);

Octave手册有关于此主题的部分Paging Screen Output

答案 1 :(得分:2)

您有两个主要选择:

  1. 每次打印后致电fflush(stdout())
  2. 如果系统自动刷新stderr(例如Linux),请打印到stderr而不是stdout
  3. 选项1通常更好,因为它更少依赖系统。使用varargin

    可以轻松地将任一解决方案包装在您自己的打印功能中
    function n = my_print(varargin)
        n = fprintf(stdout(), varargin{:});
        fflush(stdout());
    end