当前位置:  技术问答>linux和unix

为什么无法更改stdin和stdout 的缓冲区?

    来源: 互联网  发布时间:2017-05-03

    本文导语:  #include  #include  #include  int main() { char a; setvbuf( stdout, (char*)NULL, _IONBF,  0); setvbuf( stdin, (char*)NULL, _IONBF, 0 ); while( a = getchar() ) putchar( a ); return 0; } 为什么这段代码里,不是明明把stdin和stdout 改为无缓冲了吗...

#include 
#include 
#include 
int main()
{
char a;
setvbuf( stdout, (char*)NULL, _IONBF,  0);
setvbuf( stdin, (char*)NULL, _IONBF, 0 );
while( a = getchar() )
putchar( a );
return 0;
}
为什么这段代码里,不是明明把stdin和stdout 改为无缓冲了吗?终端运行还是行缓冲,即敲回车才会输出

|
终端缓冲是硬件驱动缓冲,跟stdio缓冲没关系。你要是不想敲回车,需要设置 non-canonical 模式,看 man tcsetattr

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sql server 2008:您对无法重新创建的表进行了更改或者启用了“阻止保存重新创建表的更改”
  • ubuntu源无法更改
  • linux 更改分辨率后无法进入桌面系统
  • 请教:linux8.0中装了wu-ftpd,ftp后目录无法更改!(在线等)
  • vold.conf 无法更改的问题
  • vmware上安装的solaris,命令别名无效,hostname无法更改??
  • andriod中UIScrollView无法正常滚动的解决方法
  • fedora14无法打开桌面,所有文件夹都无法打开。
  • linux系统无法启动出错,键盘无法输入
  • 请大家帮忙看看,编译内核后无法挂载root fs, 机器无法启动
  • ubuntu 安装失败后,xp也无法进入;连xp安装盘也无法安装
  • GCC无法安装的问题,希望有人帮我( Debian 4.04ra无法安装GCC)
  • 串口应用程序,当对方发送大量的数据时,本方的数据无法发出。对方停止发送,本方的数据仍然无法发出。不知道是什么原因。
  • Red hat 9.0 无法识别USB移动硬盘, 无法识别网卡和无线网卡,请问如何安装驱动?
  • 将Rethat内核从2.4升级到到2.6.12.3后,系统启动的时候无法挂载usb,启动后无法mount U盘。
  • GDM无法写入您的认证文件。这可能意味着您的硬盘没有空间,或者您的主目录无法以写方式打开
  • redhat7.2下无法安装Qt:变量QTDIR无法设置为/usr/local/qt
  • 无法启动。xp,opensuse双系统,suse中修改了系统启动顺序,机器无法启动了,提示no operating system
  • 安装Linux7.3后,在Win2K中删掉Linux分区,导致无法正常启动(显示grub>;),且无法从光盘启动,该如何解决?请帮忙
  • SQL 无法装载DLL Microsoft原因(无法修改sa密码)
  • 痛哭!!!装了共创桌面后,因为分割了一个分区,导致无法进入系统选择菜单,把共创格式化后,重装原来的windows都无法进入系统选择菜单
  • 登录ftp后无法列目录,改为pasv后仍无法列表,请问什么原因?服务器端用server-U,在线等给分!
  • MySQL无法启动、无法停止解决方法(安全设置后容易出现)
  • fedora下配置网络为何仍然无法访问局域网?
  • fedora11 ibus 无法启用中文输入法
  • 无法显示网页验证码问题怎么解决
  • SCO UNIX 5.0用软盘启动之后无法启动UNIX


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,