C++ setbuf什么时候有用(除了空值)?
C++ setbuf什么时候有用(除了空值)?,c++,c,C++,C,setbuf函数什么时候有用(空值除外) 我试图创造这些例子,但我仍然做不到。 我理解setvbuf如何有用,但我不理解setbuf三种可能的情况: 1) 在(不太可能)您想要“优化”I/O缓冲区的情况下,您可以使用 2) 您可能希望缓冲到直接控制的内存中(setbuf或setvbuf) 。。。而且 3) 您可能希望关闭缓冲(或重新打开:再次使用setbuf或setvbuf) 如果你用了什么,你就像 退房 基本上,setvbuf是一个更新的API,其逻辑与setbuf相同setbuf的存在是为了
setbuf
函数什么时候有用(空值除外)
我试图创造这些例子,但我仍然做不到。我理解
setvbuf
如何有用,但我不理解setbuf
三种可能的情况:
1) 在(不太可能)您想要“优化”I/O缓冲区的情况下,您可以使用
2) 您可能希望缓冲到直接控制的内存中(setbuf或setvbuf)
。。。而且
3) 您可能希望关闭缓冲(或重新打开:再次使用setbuf或setvbuf)
如果你用了什么,你就像
退房
基本上,
setvbuf
是一个更新的API,其逻辑与setbuf
相同setbuf
的存在是为了与setvbuf
之前编写的程序兼容
换句话说,除非您处理的代码已经使用了setbuf
,否则请忽略它的存在
:
函数:void setbuf(文件*流,字符*buf)
- 如果
是空指针,则此函数的效果相当于使用模式参数buf
调用\u IONBF
。否则,它相当于使用setvbuf
调用buf
,模式为setvbuf
,大小参数为\u IOFBF
BUFSIZ
- 提供setbuf函数是为了与旧代码兼容;在所有新程序中使用setvbuf
1) ->不,我知道。。。缓冲区的大小必须始终为BUFSIZ。
setvbuf
允许您重新定义该IO流的缓冲区大小setbuf
是缓冲区大小自动设置为BUFSIZ的setvbuf。为什么会被否决?我认为这是一个合理而有用的问题。