请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于 setbuf 和 setvbuf 问题

老师您好, 这里讲的 setbuf 和 setvbuf 函数指的是和 FILE 关联的用户空间缓冲区大小, 还是磁盘 DMA 到 内存中内核空间的文件描述符关联的缓冲区大小呢 ? 我理解的是和 FILE 关联的用户空间缓冲区大小, 是和 java 那些 BufferedReader 类相似的, 这个缓冲区是从内核空间到用户空间的IO缓冲, 是正确的吗, 如果是, 那么为什么要设置它, 文件相关的读写函数不是可以设置读内容到指定的某块内存吗, 这样是不是会多一次 IO 动作 ?

正在回答 回答被采纳积分+3

2回答

bennyhuo 2024-01-27 21:16:10
当然这个还跟具体平台的标准库实现有关系哈。
0 回复 有任何疑惑可以回复我~
bennyhuo 2024-01-27 21:15:40
缓冲,就是攒一波读或者写。比如写的时候,我们自己调用write的时候可以先写到buf里面,等buf满再用系统调用完成真正的写入。读的时候也类似,理论上可以把能读到的数据(比如网卡收到的数据)集中一起读到buf中,后面我们用read读一个字节这样的时候就不会有系统调用了。
0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信