_get_doserrno
请先获取由操作系统返回的错误值,然后再将该值转换为 errno
值。
语法
errno_t _get_doserrno(
int * pValue
);
参数
pValue
指向要使用 _doserrno
全局宏的当前值填充的整数的指针。
返回值
如果 _get_doserrno
成功,则它将返回零;如果失败,则它将返回错误代码。 如果 pValue
为 NULL
,则会调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则该函数将 errno
设置为 EINVAL
并返回 EINVAL
。
备注
在进程执行开始之前,在 CRT 初始化过程中将 _doserrno
全局宏设置为零。 将它设置为由返回操作系统错误的任一系统级函数调用返回的操作系统错误值,而且在执行过程中永远不会将其重置为零。 编写代码来检查由某个函数返回的错误值时,请始终在函数调用之前使用 _set_doserrno
清除 _doserrno
。 因为另一个函数调用可能会覆盖 _doserrno
,因此请在函数调用之后立即使用 _get_doserrno
检查该值。
建议使用 _get_errno
而非 _get_doserrno
获取可移植的错误代码。
在 errno.h 中定义 _doserrno
的可能值。<>
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
例程 | 必需的标头 | 可选标头 |
---|---|---|
_get_doserrno |
<stdlib.h>、<cstdlib> (C++) | <errno.h>、<cerrno> (C++) |
_get_doserrno
是 Microsoft 扩展。 有关兼容性的详细信息,请参阅 兼容性。