【问题标题】:Cygwin terminal buffers STDOUTCygwin 终端缓冲区 STDOUT
【发布时间】:2016-06-08 15:34:05
【问题描述】:

我使用 Altera Quartus 软件,它带有自己的 Cygwin 发行版和一个哑终端,根据 Altera 在我的“开始”菜单中放置的快捷方式,使用

运行
cmd.exe /c "c:\altera\15.1\nios2eds\NiosII Command Shell.bat"

这个批处理文件配置 Quartus 的环境并启动 bash。当我使用此窗口运行 Altera 工具时,它们的输出会立即显示(未缓冲)并且是彩色的。

我也有我自己的带有 Xserver 和终端(即 lxterminal、mrxvt、xfce4-terminal 等)的 Cygwin 安装。我已经修改了 Altera 的批处理文件以在 Cygwin 中配置 Altera 的环境,并且我可以运行 Altera 的所有工具。但是,当我运行这些工具时,它们的输出既不是彩色的(没什么大不了的,但令人惊讶),并且在所有输出同时出现时被缓冲直到执行结束。

有人对如何绕过这种缓冲有任何想法吗?

【问题讨论】:

  • altera 软件不是 cygwin 程序。关于同一问题的一些阅读:https://github.com/mintty/mintty/issues/56
  • 找到解决方案了吗?

标签: bash terminal cygwin pty io-buffering


【解决方案1】:

不知何故,您的工具认为输出不是终端而是文件。对于文件,该工具本身将创建一个缓冲区(Linux 上为 4K)。对于终端,输出通常是行缓冲的(即输出代码将收集所有字符,直到检测到行尾,然后一次全部打印)。

为了进一步帮助您,我们需要更多信息,您如何“调整 Altera 的批处理文件以在我的 Cygwin 中配置 Altera 的环境”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-09
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 2011-10-30
    相关资源
    最近更新 更多