_get_doserrno

请先获取由操作系统返回的错误值,然后再将该值转换为 errno 值。

语法

errno_t _get_doserrno(
   int * pValue
);

参数

pValue
指向要使用 _doserrno 全局宏的当前值填充的整数的指针。

返回值

如果 _get_doserrno 成功,则它将返回零;如果失败,则它将返回错误代码。 如果 pValueNULL,则会调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则该函数将 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 扩展。 有关兼容性的详细信息,请参阅 兼容性

另请参阅

_set_doserrno
errno_doserrno_sys_errlist_sys_nerr