这篇也是源自于水源C板上板友的一个问题,涉及Linux上的控制台的实现方式和历史原因。因为内容比较长,所以在这里再排版一下发出来。 原帖在这里 。
可以设置不带缓冲的标准输入流吗?
WaterElement(UnChanged) 于 2014年12月09日23:29:51 星期二 问到:
请问对于标准输入流可以设置不带缓冲吗?比如以下程序
#include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]) { FILE *fp = fdopen(STDIN_FILENO, "r"); setvbuf(fp, NULL, _IONBF, 0); char buffer[20]; buffer[0] = 0; fgets(buffer, 20, fp); printf("buffer …