关于 setbuf 和 setvbuf 问题
来源:11-2 文件流的缓冲

qq_高处不胜寒_0
2024-01-27
老师您好, 这里讲的 setbuf 和 setvbuf
函数指的是和 FILE
关联的用户空间缓冲区大小, 还是磁盘 DMA 到 内存中内核空间的文件描述符关联的缓冲区大小呢 ? 我理解的是和 FILE
关联的用户空间缓冲区大小, 是和 java
那些 BufferedReader
类相似的, 这个缓冲区是从内核空间到用户空间的IO缓冲, 是正确的吗, 如果是, 那么为什么要设置它, 文件相关的读写函数不是可以设置读内容到指定的某块内存吗, 这样是不是会多一次 IO 动作 ?
写回答
2回答
-
bennyhuo
2024-01-27
当然这个还跟具体平台的标准库实现有关系哈。00 -
bennyhuo
2024-01-27
缓冲,就是攒一波读或者写。比如写的时候,我们自己调用write的时候可以先写到buf里面,等buf满再用系统调用完成真正的写入。读的时候也类似,理论上可以把能读到的数据(比如网卡收到的数据)集中一起读到buf中,后面我们用read读一个字节这样的时候就不会有系统调用了。00
相似问题