采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
char buf[8192]; setbuf(file, buf);
char buf[8192]; setvbuf(file, buf, _IOLBF, 8192);
1、老师,您课上说setbuf不能更改缓冲区的大小,这句话怎么理解呢?直接把buf数组的大小buf[8192]改了不就更改缓冲区大小了吗?setvbuf不就这么改的吗? 2、另外,setvbuf的参数buf数组的大小8192和setvbuf的参数8192是一样的吗?都代表缓冲区大小?
buf[8192]
setbuf虽然可以修改缓冲区的大小,但因为没有传缓冲区的大小进去,所以系统并不知道你开辟了多大,都会按照 BUF_SIZE 去使用。所以改不了
这两个问题的根本原因在于,你传了一个指针给setbuf setvbuf,这个指针是没有大小信息的。基于这一点你再想想这两个问题是不是有答案了。
登录后可查看更多问答,登录/注册
如果通向大牛的道路有捷径,那就是先学好C语言
1.5k 3
1.0k 4
1.3k 9
1.5k 1
809 2