區別stderr,strerror,errno的用法

首先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整數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章