加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
virsh-fflush-stdout-after-fputs.patch 1.59 KB
一键复制 编辑 原始数据 按行查看 历史
Jiangjiacheng 提交于 2023-01-04 12:02 . Backport patches from upstream
From b50bad542e62e13c55f5b9057f7ca869f818c3e9 Mon Sep 17 00:00:00 2001
From: xuyinghao <xuyinghao2@huawei.com>
Date: Tue, 9 Aug 2022 18:59:08 +0800
Subject: [PATCH 12/22] virsh: fflush(stdout) after fputs()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Description: We are not guaranteed that the string we are printing onto stdout contains '\n' and thus that the stdout is flushed. Flush stdout after all fputs()-s which do not flush stdout.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
---
tools/vsh.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tools/vsh.c b/tools/vsh.c
index 9bb4ff043a..3646f37cea 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -1829,6 +1829,7 @@ vshDebug(vshControl *ctl, int level, const char *format, ...)
str = g_strdup_vprintf(format, ap);
va_end(ap);
fputs(str, stdout);
+ fflush(stdout);
VIR_FREE(str);
}
@@ -1845,6 +1846,7 @@ vshPrintExtra(vshControl *ctl, const char *format, ...)
str = g_strdup_vprintf(format, ap);
va_end(ap);
fputs(str, stdout);
+ fflush(stdout);
VIR_FREE(str);
}
@@ -1859,6 +1861,7 @@ vshPrint(vshControl *ctl G_GNUC_UNUSED, const char *format, ...)
str = g_strdup_vprintf(format, ap);
va_end(ap);
fputs(str, stdout);
+ fflush(stdout);
VIR_FREE(str);
}
@@ -2950,6 +2953,7 @@ vshReadline(vshControl *ctl G_GNUC_UNUSED,
int len;
fputs(prompt, stdout);
+ fflush(stdout);
r = fgets(line, sizeof(line), stdin);
if (r == NULL) return NULL; /* EOF */
--
2.33.0
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化