setbuf
函数何时有用(NULL值除外)?
我试图发明这些例子,但我还是不能
我理解setvbuf
如何有用,但我不理解setbuf
。
答案 0 :(得分:0)
三种可能的情况:
1)在(不太可能)_情况下,您想要“优化”I / O缓冲区,可以使用setvbuf。
2)您可能希望缓冲到您直接控制的内存中(setbuf或setvbuf)
......和......
3)您可能希望将缓冲关闭(或将其重新打开:再次设置为setbuf或setvbuf)。
如果你使用任何东西,你就像 查看Beej's Guide to C
答案 1 :(得分:0)
基本上,setvbuf
是与setbuf
相同逻辑的新API。 setbuf
存在与setvbuf
存在之前编写的程序的兼容性。
换句话说,除非您正在处理已使用setbuf
的代码,否则请忽略它已存在。
功能:
void setbuf (FILE *stream, char *buf)
- 如果
buf
是空指针,则此函数的效果等同于使用模式参数setvbuf
调用_IONBF
。否则,它相当于使用setvbuf
调用buf
,使用_IOFBF
模式和BUFSIZ
的大小参数。- 提供setbuf函数以与旧代码兼容;在所有新程序中使用setvbuf。