名前空間
変種
操作

エラー処理

提供: cppreference.com
< c

目次

[編集] エラー番号

ヘッダ <errno.h> で定義
POSIX互換のスレッドローカルなエラー番号変数に展開されるマクロ
(マクロ変数)[edit]
POSIX互換のエラー状態を表すマクロ
(マクロ定数) [edit]

[編集] アサーション

ヘッダ <assert.h> で定義
指定した条件式が真でない場合はプログラムを異常終了します。 リリースビルドでは無効になる場合があります
(関数マクロ) [edit]
定数式の値が偽の場合にコンパイル時診断を発行します
(キーワードマクロ)

境界チェック

標準ライブラリはいくつかの既存の関数の境界チェック版を提供しています (gets_s, fopen_s, printf_s, strcpy_s, wcscpy_s, mbstowcs_s, qsort_s, getenv_s, など)。 この機能は「オプション」であり、 __STDC_LIB_EXT1__ が定義されている場合のみ利用可能です。 以下のマクロと関数がこの機能をサポートします。

ヘッダ <errno.h> で定義
ヘッダ <stdio.h> で定義
errno_t
(C11)
int 型の typedef。 errno 値を返す関数の自己文書化に使われます
(typedef)
ヘッダ <stddef.h> で定義
ヘッダ <stdio.h> で定義
ヘッダ <stdlib.h> で定義
ヘッダ <string.h> で定義
ヘッダ <time.h> で定義
ヘッダ <wchar.h> で定義
rsize_t
(C11)
size_t と同じ型の typedef。 実行時に引数の範囲チェックを行う関数の自己文書化に使われます
(typedef)
ヘッダ <stdint.h> で定義
RSIZE_MAX
(C11)
境界チェック版の関数が受け取れる最大のサイズ。 定数または変数 (現在の割り当てメモリサイズの変化に応じて変わる可能性もある) に展開されます
(マクロ変数)
ヘッダ <stdlib.h> で定義
境界チェック関数のエラーコールバックを設定します
(関数) [edit]
境界チェック関数の異常終了コールバック
(関数) [edit]
境界チェック関数の無視コールバック
(関数) [edit]

ノート: 境界チェック付き関数の実装はオープンソースライブラリ Safe C および Slibc として、および Watcom C の一部として利用可能です。 Visual Studio で利用可能な境界チェック付き関数の非互換な集合もあります。

(C11以上)

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.2 Diagnostics <assert.h> (p: 186-187)
  • 7.5 Errors <errno.h> (p: 205)
  • 7.19 Common definitions <stddef.h> (p: 288)
  • 7.20 Integer types <stdint.h> (p: 289-295)
  • 7.21 Input/output <stdio.h> (p: 296-339)
  • 7.22 General utilities <stdlib.h> (p: 340-360)
  • K.3.1.3 Use of errno (p: 584)
  • K.3.2/2 errno_t (p: 585)
  • K.3.3/2 rsize_t (p: 585)
  • K.3.4/2 RSIZE_MAX (p: 585)
  • 7.31.3 Errors <errno.h> (p: 455)
  • 7.31.10 Integer types <stdint.h> (p: 456)
  • 7.31.11 Input/output <stdio.h> (p: 456)
  • 7.31.12 General utilities <stdlib.h> (p: 456)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.2 Diagnostics <assert.h> (p: 169)
  • 7.5 Errors <errno.h> (p: 186)
  • 7.26.3 Errors <errno.h> (p: 401)
  • 7.26.8 Integer types <stdint.h> (p: 401)
  • 7.26.9 Input/output <stdio.h> (p: 402)
  • 7.26.10 General utilities <stdlib.h> (p: 402)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.2 DIAGNOSTICS <assert.h>
  • 4.1.3 Errors <errno.h>
  • 4.13.1 Errors <errno.h>
  • 4.13.6 Input/output <stdio.h>
  • 4.13.7 General utilities <stdlib.h>

[編集] 関連項目

一般的な数学関数で使用されるエラー処理方法の定義
(マクロ定数) [edit]
エラー処理C++リファレンス