首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >msys不冲洗输出

msys不冲洗输出
EN

Stack Overflow用户
提问于 2016-01-31 00:53:34
回答 2查看 1.7K关注 0票数 1

我用的是混合和薄荷在窗户上。我遇到了一个问题,就是msys和mintty在命令完成之前是不会刷新输出的。这意味着我不能真正运行任何交互程序。

例如,如果我在C中有

代码语言:javascript
复制
printf("Test\n");

在程序终止之前,输出不会出现。但是,如果我有:

代码语言:javascript
复制
printf("Test\n"); fflush(stdout);

然后输出立即出现。如果我使用没有薄荷或windows控制台的msys,那么一切都正常工作。

所以我的问题是,msys和mintty是怎么回事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-27 18:01:07

当msys在许多情况下使用rxvt时,这可能是一个问题。在遇到此问题的情况下,我要求msys使用本机Windows作为其控制台。例如:

代码语言:javascript
复制
C:\MinGW\msys\1.0\msys.bat --no-rxvt

我认为现代MSYS安装默认使用本机shell,因为MSYS开发人员似乎更喜欢它。对于本机shell,我还存在其他问题,这些问题促使我使用rxvt,因此我很少遇到这个问题。

代码语言:javascript
复制
C:\MinGW\msys\1.0\msys.bat --rxvt

我发现rxvt通常运行良好,除非某些应用程序是作为“控制台”实用程序构建的,这些实用程序意在从命令行运行。

票数 2
EN

Stack Overflow用户

发布于 2019-02-13 20:25:03

唯一对我有效的是在命令前面加上winpty .

代码语言:javascript
复制
$ winpty java ClassName

它导致未缓冲的输出慢3倍,缓冲输出慢5倍(在我的例子中,用Java)。

总是有一个命令被winpty无形中调用.

代码语言:javascript
复制
$ cd ~
$ pwd -W

..。将以下行添加到.bashrc ..。

代码语言:javascript
复制
alias java="winpty java"

..。然后重新启动终端并忽略(一次性)警告消息.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35109086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档