无法关闭 C 中的行缓冲

问题描述 投票:0回答:1

所以,我正在开发一个大项目,它需要禁用标准输入和标准输出缓冲区,以便立即处理输入和输出。然而,当我尝试使用

setbuf
setvbuf
来做到这一点时,它就是行不通。这是我的代码:

#include <stdio.h>
#include <stdbool.h>

int main() {
    setbuf(stdin, NULL);
    setbuf(stdout, NULL);
    setbuf(stderr, NULL);
    while(true) {
        char a = getchar();
        printf("%c", a);
    }
    return 0;
}

我使用的是Linux,但是我无法在Windows计算机上测试它,所以我无法确认这是否是Linux问题。

这是一个不起作用的视频:https://youtu.be/EWs5H_6h9DQ

c buffer stdout stdin
1个回答
0
投票

所以,解决方案是使用

termios
。我从here获取了代码,它运行得很好!

© www.soinside.com 2019 - 2024. All rights reserved.