我有一个看起来像这样的 ncurses 程序
1. int c =0;
2. initscr();
3. timeout(-1);
4. printw("Enter a character");
5. getch();
6. printw("\nOkay\n");
7. c = 5;
我希望在将 c 修改为 5 之前应该发生getch()
以及以下的输出printw()
(并且在屏幕上可见)。但是这似乎并没有发生(使用 qemu-kvm 并在那时中断进行验证)。是否有任何原因可能会发生这种情况,或者以某种方式确保在执行下一条语句之前输出在屏幕上可见?fflush(stdout) 能保证吗?
该操作系统是使用 qemu-kvm 运行的虚拟 gentoo。屏幕处于控制台模式( X 未初始化)。