错误处理

来自cppreference.com
< c

目录

[编辑] 错误编号

定义于头文件 <errno.h>
展开成POSIX兼容的线程局域错误编号变量
(宏变量) [edit]
标准POSIX兼容的错误条件宏
(宏常量) [edit]

[编辑] 断言

定义于头文件 <assert.h>
若用户指定的条件非true,则异常终止程序。可以在发行版本禁用。
(宏函数) [edit]
若常量表达式为假则发布编译诊断
(宏函数)

边界检查

标准库提供了一些既存函数的边界检查版本(gets_sfopen_sprintf_sstrcpy_swcscpy_smbstowcs_sqsort_sgetenv_s等等)。这些功能是可选的,并且仅当定义__STDC_LIB_EXT1__后可用。下列宏和函数支持此功能。

定义于头文件 <errno.h>
定义于头文件 <stdio.h>
errno_t
(C11)
int的typedef,用于自描述性函数返回errno
(类型定义)
定义于头文件 <stddef.h>
rsize_t
(C11)
size_t相同类型的typedef,用于自描述性函数在运行时检查它们的参数范围
(类型定义)
定义于头文件 <stdint.h>
RSIZE_MAX
(C11)
范围检查函数可接受的最大大小,展开成常量或可能在运行时改变的变量(例如,当前分配的内存大小改变时)
(宏变量)
定义于头文件 <stdlib.h>
设置边界检查函数的出错回调
(函数) [edit]
边界检查函数的异常中止回调
(函数) [edit]
边界检查函数的忽略回调
(函数) [edit]
(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++文档