errno |
| ||||
errno | |
ヘッダ | #include <errno.h> |
概 要 | errnoは、以下の特徴をもつ変更可能な左辺値に展開される。
プログラム開始時の(C11 初期スレッドにおける)errnoの値は0であり、いかなるライブラリ関数も0に設定することはない。標準Cの規格の関数の機能説明でerrnoの使用について規定していない場合、エラーのあるなしにかかわらず、ライブラリ関数の呼出しによってerrnoの値を0以外に設定しもよい。 |
補 足 | マクロerrnoは、オブジェクトの識別子である必要はない。それは関数呼出し(たとえば、*errno())の結果によって決まる変更可能な左辺値に展開してもよい。 エラー検査のためにerrnoを使用するプログラムは、ライブラリ関数呼出しの前にerrnoの値を0に設定し、その次のライブラリ関数の呼出しの前にその値を検査するとよい。もちろん、ライブラリ関数は、関数の入り口でerrnoの値を保存した後に0に設定し、関数が復帰する直前までのerrnoの値が0のままの場合、元の値に戻すということも可能である。 |