_getdcwd, _wgetdcwd

获取当前工作目录的完整路径在指定的驱动程序。

重要

此 API 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 CRT 函数不支持与 /ZW

char *_getdcwd( 
   int drive,
   char *buffer,
   int maxlen 
);
wchar_t *_wgetdcwd( 
   int drive,
   wchar_t *buffer,
   int maxlen 
);

参数

  • drive
    指定该驱动程序的负整数 (0 = 默认驱动程序,1 = 2 = A,B,等等)。

    如果指定的驱动程序不可用,或该驱动程序 (例如,可移动,修复,CD-ROM、RAM 磁盘或网络驱动器上) 无法确定的,参数无效处理程序,在 参数验证,将介绍调用。

  • buffer
    路径的存储位置或 NULL

    如果 NULL 指定,使用 malloc,此函数分配至少 maxlen 大小缓冲区,并且,_getdcwd 的返回值是指向分配的缓冲区。 缓冲区可通过调用 free 并向其传递指针释放。

  • maxlen
    指定路径的最大长度的非零的正整数,在字符:_getdcwd 的 _wgetdcwd的 char 和 wchar_t。

    如果 maxlen 大于零不大,参数无效处理程序,在 参数验证,将介绍调用。

返回值

为表示当前工作目录完整路径在指定的驱动程序的字符串的指针或 NULL,指示错误。

如果 buffer 指定,因为 NULL 和存在分配 maxlen 字符的内存不足,错误,并 errno 设置为 ENOMEM。 如果路径的长度,包括终止 null 字符),超过 maxlen,错误,并 errno 设置为 ERANGE。 有关这些错误代码的更多信息,请参见 errno、_doserrno、_sys_errlist和_sys_nerr

备注

_getdcwd 函数获取当前工作目录的完整路径在指定的驱动程序并将其存储在 buffer。 如果当前工作目录设置为根,该字符串以反斜杠结束 (\)。 以外,如果当前工作目录设置为内容,该字符串结尾的目录的名称和不是杠。

_wgetdcwd 是 _getdcwd的宽字符版本及其 buffer 参数和返回值是宽字符字符串。 否则,_wgetdcwd 和 _getdcwd 具有相同的行为。

此函数是线程安全的,即使它依赖于 GetFullPathName,它不是线程安全的。 但是,因此,如果您的多线程应用程序调用此函数和 GetFullPathName,可以违反线程安全。 有关更多信息,转到然后 MSDN Library 搜索 GetFullPathName

具有 _nolock 后缀方法的行为与此功能的版本的此功能,但它不是线程安全的和不从由其他线程的干扰保护。 有关更多信息,请参见_getdcwd_nolock, _wgetdcwd_nolock

当 _DEBUG 和 _CRTDBG_MAP_ALLOC 定义时,对 _getdcwd,并 _wgetdcwd 替换调用 _getdcwd_dbg 和 _wgetdcwd_dbg,以便您可以调试内存分配。 有关更多信息,请参见_getdcwd_dbg, _wgetdcwd_dbg

一般文本例程映射

Tchar.h 实例

未定义的_UNICODE 和_MBCS

定义的_MBCS

定义的_UNICODE

_tgetdcwd

_getdcwd

_getdcwd

_wgetdcwd

要求

实例

必需的标头

_getdcwd

<direct.h>

_wgetdcwd

<direct.h> 或 <wchar.h>

有关更多兼容性信息,请参见 兼容性

示例

请参见 _getdrive 中的示例。

.NET Framework 等效项

System::Environment::CurrentDirectory

请参见

参考

内容控件

_chdir, _wchdir

_getcwd, _wgetcwd

_getdrive

_mkdir, _wmkdir

_rmdir, _wrmdir