13.21 為什麼調用 printf() 之後 errno 內有 ENOTTY?

如果 stdout 是終端, 很多 stdio 包都會對其行為進行細微的調整。為了做出判斷, 這些實現會執行某些當 stdout 為終端時會失敗的操作。儘管輸出操作成功完成, errno 還是會被置為 ENOTTY。注意, 只有當函數報告錯誤之後檢查 errno 的內容 才有意義。errno 在其它情況下也不保證為 0。

參考資料: [ISO, Sec. 7.1.4, Sec. 7.9.10.3]; [CT&P, Sec. 5.4 p. 73]; [PCS, Sec. 14 p. 254]。

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