我用的是混合和薄荷在窗户上。我遇到了一个问题,就是msys和mintty在命令完成之前是不会刷新输出的。这意味着我不能真正运行任何交互程序。
例如,如果我在C中有
printf("Test\n");在程序终止之前,输出不会出现。但是,如果我有:
printf("Test\n"); fflush(stdout);然后输出立即出现。如果我使用没有薄荷或windows控制台的msys,那么一切都正常工作。
所以我的问题是,msys和mintty是怎么回事?
发布于 2016-04-27 18:01:07
当msys在许多情况下使用rxvt时,这可能是一个问题。在遇到此问题的情况下,我要求msys使用本机Windows作为其控制台。例如:
C:\MinGW\msys\1.0\msys.bat --no-rxvt我认为现代MSYS安装默认使用本机shell,因为MSYS开发人员似乎更喜欢它。对于本机shell,我还存在其他问题,这些问题促使我使用rxvt,因此我很少遇到这个问题。
C:\MinGW\msys\1.0\msys.bat --rxvt我发现rxvt通常运行良好,除非某些应用程序是作为“控制台”实用程序构建的,这些实用程序意在从命令行运行。
发布于 2019-02-13 20:25:03
唯一对我有效的是在命令前面加上winpty .
$ winpty java ClassName它导致未缓冲的输出慢3倍,缓冲输出慢5倍(在我的例子中,用Java)。
总是有一个命令被winpty无形中调用.
$ cd ~
$ pwd -W..。将以下行添加到.bashrc ..。
alias java="winpty java"..。然后重新启动终端并忽略(一次性)警告消息.
https://stackoverflow.com/questions/35109086
复制相似问题