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
| |