C 参考手册
- C 语言
- C 关键词
- 预处理器
- C 标准库头文件
- 类型支持
- 程序支持工具
- 变参数函数
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 算法
- 数值
- 文件输入/输出
- gets, gets_s
- printf, fprintf, sprintf, snprintf, printf_s, fprintf_s, sprintf_s, snprintf_s
- fopen, fopen_s
- fputc, putc
- fputs
- getchar
- putchar
- FILE
- fpos_t
- stdin, stdout, stderr
- freopen, freopen_s
- fwide
- setbuf
- setvbuf
- fclose
- fflush
- fread
- fwrite
- fgetc, getc
- fgets
- puts
- ungetc
- fgetwc
- fgetws
- fputwc, putwc
- fputws
- getwchar
- putwchar
- ungetwc
- scanf, fscanf, sscanf, scanf_s, fscanf_s, sscanf_s
- wscanf, fwscanf, swscanf, wscanf_s, fwscanf_s, swscanf_s
- vscanf, vfscanf, vsscanf, vscanf_s, vfscanf_s, vsscanf_s
- vwscanf, vfwscanf, vswscanf, vwscanf_s, vfwscanf_s, vswscanf_s
- wprintf, fwprintf, swprintf, wprintf_s, fwprintf_s, swprintf_s, snwprintf_s
- vprintf, vfprintf, vsprintf, vsnprintf, vprintf_s, vfprintf_s, vsprintf_s, vsnprintf_s
- vwprintf, vfwprintf, vswprintf, vwprintf_s, vfwprintf_s, vswprintf_s, vsnwprintf_s
- ftell
- fgetpos
- fseek
- fsetpos
- rewind
- clearerr
- feof
- ferror
- perror
- remove
- rename
- tmpfile, tmpfile_s
- tmpnam, tmpnam_s
- 本地化支持
- 原子操作库
- 线程支持库
- 实验性 C 标准库
- 有用的资源
- 符号索引
- 注释
setbuf
定义于头文件 <stdio.h>
|
||
void setbuf( FILE *stream, char *buffer ); |
(C99 前) | |
void setbuf( FILE *restrict stream, char *restrict buffer ); |
(C99 起) | |
设置用于流操作的内部缓冲区。其长度至少应该为 BUFSIZ
个字符。
若 buffer
非空,则等价于 setvbuf(stream, buffer, _IOFBF, BUFSIZ) 。
若 buffer
为空,则等价于 setvbuf(stream, NULL, _IONBF, 0) ,这会关闭缓冲。
参数
stream | - | 要设置缓冲区的文件流 |
buffer | - | 指向文件流所用的缓冲区的指针。若提供 NULL ,则关闭缓冲。 |
返回值
无。
注意
若 BUFSIZ 不是适合的缓冲区大小,则能用 setvbuf 更改它。
setvbuf 亦应当用于检测错误,因为 setbuf
不指示成功或失败。
此函数仅可在已将 stream
关联到打开的文件后,但要在任何其他操作(除了对 setbuf/setvbuf
的失败调用)前使用。
一个常见错误是设置 stdin 或 stdout 的缓冲区为生存期在程序终止前结束的数组:
示例
setbuf 可用于禁用要求立即输出的流的缓冲。
运行此代码
输出:
ab
引用
- C11 standard (ISO/IEC 9899:2011):
- 7.21.5.5 The setbuf function (p: 307-308)
- C99 standard (ISO/IEC 9899:1999):
- 7.19.5.5 The setbuf function (p: 273)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.9.5.5 The setbuf function
参阅
为文件流设置缓冲区和其大小 (函数) |