setvbuf在应用程序(可执行文件)中有什么用?

时间:2013-04-12 13:23:05

标签: windows

setvbuf (stdout, NULL, _IOLBF, 0);

这一行存在于我的一个代码中,我无法弄清楚原因。如果我注释掉这一行,我的应用程序工作正常。但如果我保留它,那么我的应用程序崩溃了。另请阅读http://msdn.microsoft.com/en-us/library/86cebhfs(v=vs.100).aspx,但无法正确理解应用程序崩溃的原因。

请帮忙。 感谢

1 个答案:

答案 0 :(得分:2)

setvbuf()的部分MSDN说明说明:

enter image description here

因此,在Windows上,您将获得与_IOFBF相同的效果,正如文中所述,它将使用您指定大小的自动分配缓冲区。

在您的代码中,您指定的大小为。因此崩溃。

在非Win32系统上,相同的命令会激活行缓冲,因此可能没问题。也许这个代码是多平台的?