名前空間
変種
操作

errno

提供: cppreference.com
< cpp‎ | error
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ(C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
 
ヘッダ <cerrno> で定義
#define errno /*implementation-defined*/

errno はエラーを示すためのプリプロセッサマクロです。 int 型の static(C++11未満) スレッドローカル(C++11以上)な可変左辺値に展開されます。

いくつかの標準ライブラリ関数は、 errno に正の値を書き込むことによってエラーを示します。 一般的には、 errno の値は、 E で始まり大文字または数字が続くマクロ定数として <cerrno> に掲載されている、エラーコードのいずれかに設定されます。

プログラム開始時の errno の値は 0 です。 ライブラリ関数は、エラーが発生したかどうかにかかわらず、正の値を errno に書き込むことが許されています。 ライブラリ関数が errno0 を格納することはありません。

[編集]

#include <iostream>#include <cmath>#include <cerrno>#include <cstring>#include <clocale>   int main(){double not_a_number =std::log(-1.0);if(errno==EDOM){std::cout<<"log(-1) failed: "<<std::strerror(errno)<<'\n';std::setlocale(LC_MESSAGES, "de_DE.utf8");std::cout<<"Or, in German, "<<std::strerror(errno)<<'\n';}}

出力例:

log(-1) failed: Numerical argument out of domain Or, in German, Das numerische Argument ist ausserhalb des Definitionsbereiches

[編集]欠陥報告

以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。

DR 適用先 発行時の動作 正しい動作
LWG 310 C++98 it is unspecified whether errno is a macro or an identifier with external linkage errno must be macro

[編集]関連項目

標準の POSIX 互換のエラー状況のためのマクロ
(マクロ定数)[edit]
現在のエラーに対応する文字列を stderr に出力します
(関数)[edit]
指定されたエラーコードのテキストバージョンを返します
(関数)[edit]
close