什么时候setbuf有用(除了NULL值)?

时间:2013-12-18 06:11:58

标签: c++ c

setbuf函数何时有用(NULL值除外)?

我试图发明这些例子,但我还是不能 我理解setvbuf如何有用,但我不理解setbuf

2 个答案:

答案 0 :(得分:0)

三种可能的情况:

1)在(不太可能)_情况下,您想要“优化”I / O缓冲区,可以使用setvbuf

2)您可能希望缓冲到您直接控制的内存中(setbuf或setvbuf)

......和......

3)您可能希望将缓冲关闭(或将其重新打开:再次设置为setbuf或setvbuf)。

如果你使用任何东西,你就像 查看Beej's Guide to C

http://beej.us/guide/bgc/output/html/multipage/setvbuf.html

答案 1 :(得分:0)

基本上,setvbuf是与setbuf相同逻辑的新API。 setbuf存在与setvbuf存在之前编写的程序的兼容性。

换句话说,除非您正在处理已使用setbuf的代码,否则请忽略它已存在。

Reference

  

功能: void setbuf (FILE *stream, char *buf)

     
      
  • 如果buf是空指针,则此函数的效果等同于使用模式参数setvbuf调用_IONBF。否则,它相当于使用setvbuf调用buf,使用_IOFBF模式和BUFSIZ的大小参数。
  •   
  • 提供setbuf函数以与旧代码兼容;在所有新程序中使用setvbuf。
  •