setbuf
|
定义于头文件
<stdio.h>
|
||
|
void
setbuf
(
FILE
*
stream,
char
*
buffer
)
;
|
(C99前) | |
|
void
setbuf
(
FILE
*
restrict
stream,
char
*
restrict
buffer
)
;
|
(C99起) | |
|
#define BUFSIZ /*unspecified*/
|
||
设置用于流操作的内部缓冲区。其长度应至少为
BUFSIZ
个字符。
如果
buffer
不为空,等价于
setvbuf
(
stream, buffer,
_IOFBF
,
BUFSIZ
)
。
如果
buffer
为空,等效于
setvbuf
(
stream,
NULL
,
_IONBF
,
0
)
,这将关闭缓冲机制。
目录 |
参数
| stream | - | 要设置缓冲区的文件流 |
| buffer | - | 指向流要使用的缓冲区的指针。如果提供空指针,则关闭缓冲功能 |
返回值
无。
注释
如果 BUFSIZ 不是合适的缓冲区大小,可以使用 setvbuf 来更改它。
setvbuf
也应当用于检测错误,因为
setbuf
不会指示成功或失败。
此函数仅可在
stream
已关联打开文件后使用,但必须在任何其他操作之前(除失败的
setbuf
/
setvbuf
调用外)。
一个常见的错误是将 stdin 或 stdout 的缓冲区设置为在程序终止前生命周期就已结束的数组:
示例
setbuf
可用于在需要立即输出的流上禁用缓冲。
输出:
ab
参考文献
- C17 标准 (ISO/IEC 9899:2018):
-
- 7.21.5.5 setbuf 函数 (页: 225)
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.21.5.5 setbuf 函数 (p: 307-308)
- C99标准(ISO/IEC 9899:1999):
-
- 7.19.5.5 setbuf函数(页数:273)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 4.9.5.5 setbuf 函数
参考
|
设置文件流的缓冲区及其大小
(函数) |
|
|
C++ 文档
for
setbuf
|
|