std::strerror
提供: cppreference.com
ヘッダ <cstring> で定義
|
||
char* strerror( int errnum ); |
||
システムのエラーコード errnum
の説明テキストを指すポインタを返します。 std::perror() によって表示されるであろう説明と同一です。
errnum
は通常、 errno
変数から取得しますが、この関数は int 型のあらゆる値を受理します。 文字列の内容はロケール固有です。
返された文字列はプログラムから変更してはなりませんが、後の strerror
関数の呼び出しによって上書きされる可能性があります。 strerror
はスレッドセーフであることは要求されません。 処理系は静的な読み込み専用の文字列リテラルを指す異なるポインタを返すかもしれませんし、 strerror
が文字列を置く静的バッファを指す同じポインタを毎回返すかもしれません。
目次 |
[編集] 引数
errnum | - | エラーコードを表す整数値 |
[編集] 戻り値
errno のエラーコード errnum
に対応するヌル終端バイト文字列を指すポインタ。
[編集] ノート
POSIX は strerror
の後の呼び出しが前の呼び出しによって返されたポインタ値を無効化することを許しています。 また、 LC_MESSAGES ロケールファセットがこれらのメッセージの内容を制御することも��定しています。
[編集] 例
Run this code
#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
[編集] 関連項目
現在のエラーに対応する文字列を stderr に出力します (関数) | |
標準の POSIX 互換のエラー状況のためのマクロ (マクロ定数) | |
strerror の C言語リファレンス
|