名前空間
変種
操作

errno

提供: cppreference.com
< cpp‎ | error
 
 
 
 
ヘッダ <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

[編集] 関連項目

標準のPOSIX互換のエラー条件のためのマクロ
Original:
macros for standard POSIX-compatible error conditions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

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