13.20 為什麼大家都說不要使用 gets()?

跟 fgets() 不同, gets() 不能被告知輸入緩衝區的大小, 因此不能避免緩衝區 的溢出。標準庫的 fgets() 函數對 gets() 作了很大的改進, 儘管它仍然不完善。 如果真的可能輸入很長的行, 還是需要仔細思考, 正確處理。 參見問題 7.1 用 fgets() 代替 gets() 的代碼片斷。

參考資料: [Rationale, Sec. 4.9.7.2]; [H&S, Sec. 15.7 p. 356]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)