_getcwd, _wgetcwd

获取当前工作目录。

重要

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

char *_getcwd( 
   char *buffer,
   int maxlen 
);
wchar_t *_wgetcwd( 
   wchar_t *buffer,
   int maxlen 
);

参数

  • buffer
    路径的存储位置。

  • maxlen
    路径的最大长度的字符:_getcwd 的 _wgetcwd的 char 和 wchar_t。

返回值

返回指向 buffer 的指针。 NULL 返回值指示错误,并且,errno 设置为任一对 ENOMEM,指示有分配内存不足 maxlen 字节 (在 NULL 参数是作为 buffer) 时,或对 ERANGE,指示路径比 maxlen 字符长度。 如果 maxlen 小于或等于零,此函数调用无效参数处理程序,如 参数验证所述。

有关这些属性和其他的更多信息返回代码示例,请参见 _doserrno、errno、_sys_errlist 和_sys_nerr

备注

_getcwd 函数获取当前工作目录的完整路径默认驱动程序并将其存储在 buffer。 整数参数 maxlen 对路径指定最大长度。 错误,如果路径的长度 (包括终止 null 字符) 超过 maxlen*。*buffer 参数可以为 NULL;至少范围 maxlen 缓冲区 (仅限如果需要),使用 malloc,自动指派,存储路径。 此缓冲区可以通过调用 free 后释放,并将其 _getcwd 返回值 (对于分配的缓冲区的指针)。

_getcwd 返回表示当前工作目录路径的字符串。 如果当前工作目录是根,该字符串以反斜杠 ( \ ) 结束。 以外,如果当前工作目录是内容,该字符串结尾。目录名和不是杠。

_wgetcwd 是 _getcwd的宽字符版本;buffer 参数和返回 _wgetcwd 的值是宽字符字符串。 _wgetcwd 和 _getcwd 否则具有相同的行为。

当 _DEBUG 和 _CRTDBG_MAP_ALLOC 定义时,对 _getcwd,并 _wgetcwd 替换调用 _getcwd_dbg 和 _wgetcwd_dbg 允许调试内存分配。 有关更多信息,请参见 _getcwd_dbg,_wgetcwd_dbg

一般文本例程映射

Tchar.h 实例

未定义的_UNICODE 和_MBCS

定义的_MBCS

定义的_UNICODE

_tgetcwd

_getcwd

_getcwd

_wgetcwd

要求

实例

必需的标头

_getcwd

<direct.h>

_wgetcwd

<direct.h> 或 <wchar.h>

有关更多兼容性信息,请参见中介绍的 兼容性

示例

// crt_getcwd.c
// This program places the name of the current directory in the 
// buffer array, then displays the name of the current directory 
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.
 
#include <direct.h>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char* buffer;

   // Get the current working directory: 
   if( (buffer = _getcwd( NULL, 0 )) == NULL )
      perror( "_getcwd error" );
   else
   {
      printf( "%s \nLength: %d\n", buffer, strnlen(buffer) );
      free(buffer);
   }
}
  

.NET Framework 等效项

System::Environment::CurrentDirectory

请参见

参考

内容控件

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir