setbuf
來自 cppreference.com
定義於標頭檔案 <stdio.h> |
||
void setbuf( FILE *stream, char *buffer ); |
(直到 C99) | |
void setbuf( FILE *restrict stream, char *restrict buffer ); |
(C99 起) | |
#define BUFSIZ /*unspecified*/ |
||
設定用於流操作的內部緩衝區。它應該至少有 BUFSIZ
個字元長。
如果 buffer
不為 null,則等同於 setvbuf(stream, buffer, _IOFBF, BUFSIZ)。
如果 buffer
為 null,則等同於 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 The setbuf function (p: 225)
- C11 標準 (ISO/IEC 9899:2011)
- 7.21.5.5 The setbuf function (p: 307-308)
- C99 標準 (ISO/IEC 9899:1999)
- 7.19.5.5 The setbuf function (p: 273)
- C89/C90 標準 (ISO/IEC 9899:1990)
- 4.9.5.5 The setbuf function
[編輯] 另請參閱
為檔案流設定緩衝區及其大小 (函式) | |
C++ 文件 for setbuf
|