的簽名freopen函數是FILE * freopen (const char * filename, const char * mode, FILE * stream)
C - 是否需要檢查freopen返回值?
根據該文件,返回值是一樣的東西stream
設置爲。所以,我的代碼已經檢查stream != 0
,我需要檢查返回值嗎? stream == 0
但是retval != 0
?如果我不需要檢查兩者,爲什麼如果我不檢查retval,gcc會給我一個警告?
要安靜的gcc,可以簡單地做:stream = freopen(filename, mode, stream); if (!stream) {...})
?
我不確定你是怎麼使用它的,但freopen()函數的主要用途是改變與標準文本流('stderr','stdin'或'stdout')相關的文件。 –
如果不需要檢查返回值,則不需要函數返回值。既然如此,答案很清楚*是的,你需要檢查它*。 –