首先stderr與strerror,errno,前面這個概念與後面兩個基本沒有關係。
stderr是C、C++中fprint函數的標準輸出流,類似的還有stdin,stdout,其作用是將標準錯誤輸出到屏幕
-----------------------------------------------------------------------------------------------------------------------------------------
errno是一個在linux C 發生異常時,系統自動賦值的全局變量,在頭文件<errno.h>中,不同的值可以表示不同的意思,程序員可以通過查找對應出錯誤
但這顯然很麻煩,所以就有了函數strerror,該函數可直接返回錯誤,免去了查找的過程,然後可以配合fprint函數中的stderr將錯誤信息輸出
函數原型如下:
#include<string.h>
char *strerror(int errno)
官方註釋:The strerror() function
returns the appropriate error description string, or an unknown error message if the error code is unknown. The value of errno is
not changed for a successful call, and is set to a nonzero value upon error
個人翻譯:若錯誤碼未知的話,strerror函數返回合適的錯誤描述符,或者一個未知的錯誤信息。對於一個正確的系統調用,errno的賦值不會發生變化,一旦發生錯誤會置成一個非0整數。