3 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
它不在標(biāo)準(zhǔn)C中,因此行為未定義。
一些實(shí)現(xiàn)使用它來(lái)清除stdin
緩沖區(qū)。
從C11 7.21.5.2 fflush函數(shù),fflush
只適用于輸出/更新流,而不是輸入流。
如果流指向輸入流或未輸入最近操作的更新流,則fflush功能會(huì)將該流的任何未寫入數(shù)據(jù)傳送到主機(jī)環(huán)境以寫入該文件; 否則,行為未定義。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
它stdin
在讀取之前清除緩沖區(qū)。從手冊(cè)頁(yè):
對(duì)于輸出流,fflush()強(qiáng)制通過(guò)流的底層寫入函數(shù)寫入給定輸出或更新流的所有用戶空間緩沖數(shù)據(jù)。對(duì)于輸入流,fflush()會(huì)丟棄從底層文件中提取但尚未被應(yīng)用程序使用的任何緩沖數(shù)據(jù)。
注意:這是特定fflush()
于Linux的,使用輸入流的標(biāo)準(zhǔn)未定義,但是,大多數(shù)實(shí)現(xiàn)與Linux中的行為相同。
- 3 回答
- 0 關(guān)注
- 1864 瀏覽
添加回答
舉報(bào)