求大神指教Linux中关于缓冲区的小问题

slyxff 2013-04-02 04:38:47
代码如下:
#include <stdio.h>
int main(void)
{
if(stdin->_flags&_IO_LINE_BUF)
printf("linebuf\n");
else if(stdin->_flags&_IO_FULL_BUF)
printf("fullbuf\n");
return 0;
}
用gcc编译出现错误:‘_IO_FULL_BUF’未声明(在此函数内第一次使用),
可_IO_LINE_BUF却是可以用的,这是什么情况
...全文
87 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2013-04-03
我的stdio.h中就没有这些宏。
回复
slyxff 2013-04-03
引用 2 楼 ForestDB 的回复:
也许那个宏并不是public的API。 #define _IOFBF 0 /* setvbuf should set fully buffered */ #define _IOLBF 1 /* setvbuf should set line buffered */ #define _IONBF 2 /* setvbuf should set un……
可是_IO_UNBUFFERED, _IO_LINE_BUF , _IO_FULL_BUF 这三个宏不都是定义在<stdio.h>里面的吗?为什么只有 _IO_FULL_BUF 在编译的时候出现错误呢
回复
ForestDB 2013-04-02
也许那个宏并不是public的API。 #define _IOFBF 0 /* setvbuf should set fully buffered */ #define _IOLBF 1 /* setvbuf should set line buffered */ #define _IONBF 2 /* setvbuf should set unbuffered */
回复
赵4老师 2013-04-02
VS IDE中,在不明白的符号上点鼠标右键,选转到定义。
回复
发动态
发帖子
新手乐园
创建于2007-09-28

3.2w+

社区成员

C/C++ 新手乐园
申请成为版主
社区公告
暂无公告