文件頭名稱:
<cerrno>(errno.h)
文件頭描述:
文件內定義了如下的宏
errno
加上其他至少的三個宏常量:EDOM,ERANGE 和EILSEQ
errno <cerrno>
這個宏定義可擴展為一個可修改的整型左值(lvalue of type int
);所以,它能被程序讀取和修改;errno在程序啟動時被設置為0,並且任何C標准庫中的函數能夠修改成非0的其他值,一般用於標記特定類別的錯誤(一般庫函數一旦設置完後就不會再次修改了)一個程序同樣可以修改這個值,如果這個變量是用於在庫函數調用後的錯誤檢查,那它應該在被調用前被程序預設置(因為任何對庫函數的提前調用都會改變這個值)在聲明了errno 的相同頭文件內至少聲明了如下非0值的宏變量
這些標准庫中的函數可能設置errno為任何值(並不止上面列出的簡少幾個值),特定的函數可能會在這個頭文件中定義額外的名字;c++ 11擴展中定義的基本值的集合(basic set of values)需要在這個頭文件中被聲明,其中包括許多在POSIX環境中也可使用的名稱,errno值的總數增加到了78個,而且這個數字在不斷增長中。要查看完整的列表,請參閱 errc 。這些特殊的錯誤信息與 errno 值之間的關系可以使用 strerror 函數獲得 或者 直接使用 perror 函數打印輸出;在C++中errno 通常被聲明為一個宏,但是在C中則可能作為一個int對象實現與外部鏈接;
這個庫支持多線程,每一個線程都擁有自己區域的errno值,這是一個在C11和C++11的庫兼容方面的需求。