errno
C/C++ で使われるエラー番号を返す変数
errno の値は実装依存
C/C++ でプログラムを作る場合、errno でエラー番号を受け取ることになるが、この番号は名前だけ共通(POSIX)で値は実装依存になっている。
このため値だけを見てもどの実装なのかが分からないと正しい答えにならない。
グローバル変数であるため、マルチスレッドではスレッドローカルストレージで実装される。(ちゃんとマルチスレッド対応でコンパイルしないと大変なことになる。)
#include <errno.h>
C言語:エラー番号
ISO C
int 型のグローバル変数(のように見える)であることが保証されている。
EDOM, EILSEQ, ERANGE のみが定義されている。(つまりそれ以外は全て実装依存になってしまう)
POSIX
errno.h https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
エラー番号の説明 https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_03
Linux
errno https://linuxjm.osdn.jp/html/LDP_man-pages/man3/errno.3.html
POSIX 準拠
/usr/include/asm-generic/errno-base.h
/usr/include/asm-generic/errno.h
集めたもの
https://docs.google.com/spreadsheets/d/1UBWoZndUXn2AzN7XsTR73wf11eyup7r1zzBW7S0jfEY/edit?usp=sharing
Windows
errno 定数 https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/errno-constants?view=msvc-170