LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 745|回复: 3

关于stdin的缓冲问题。

[复制链接]
发表于 2006-11-11 15:27:45 | 显示全部楼层 |阅读模式
一般stdin都是行缓冲,就是要一个'\n'出现时才把一行数据刷到程序里。我有下面一个小程序:

  1. main()
  2. {  
  3.     int ch;
  4.     setvbuf(stdin,NULL,_IONBF,0);
  5.     while((ch = getchar()) != EOF)
  6.     printf("%d\n",ch);
  7. }
复制代码


目的是在终端上输入一个字符,不用敲回车就可以看到程序输出的结果,但是这个setvbuf好想没用。请问一下如何才能实现这种没有缓存的输入输出? 是不是要把stdout也设为无缓存?
发表于 2006-11-11 17:39:26 | 显示全部楼层
楼主的签名不错
想到了就去试嘛
回复 支持 反对

使用道具 举报

发表于 2006-11-11 20:38:50 | 显示全部楼层
无他,底层终端设备编程,termios而已。
回复 支持 反对

使用道具 举报

发表于 2006-11-12 08:59:50 | 显示全部楼层
Post by realtang
无他,底层终端设备编程,termios而已。


好精炼啊, 不知道楼主是否能明白
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表