_getdcwd, _wgetdcwd

Возвращает полный путь текущей рабочей папки на указанном диске.

Важно!

Этот API невозможно использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.

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

Параметры

  • drive
    Неотрицательное целое число, которое определяет диск (0 = диск по умолчанию, 1 = A, 2 = B и т.д.).

    Если указанный диск недоступен или тип диска (например, съемный, жесткий, компакт-диск, диск ОЗУ или сетевой диск) не может быть определен, то вызывается обработчик недопустимых параметров, как описано в разделе Проверка параметров.

  • buffer
    Место хранения для пути или NULL.

    Если указано NULL, эта функция выделяет буфер размером не менее maxlen с помощью malloc и возвращаемое значение _getdcwd - указатель на выделенный буфер. Буфер может быть освобожден с помощью вызова free и передачи ему указателя.

  • maxlen
    Отличное от нуля положительное целое число, определяющее максимальную длину пути, в символах. char для _getdcwd и wchar_t для _wgetdcwd.

    Если maxlen не больше нуля, то вызывается обработчик недопустимых параметров, как описано в разделе Проверка параметров.

Возвращаемое значение

Указатель на строку, которая представляет полный путь текущей рабочей папки в указанном диске или NULL, что указывает на ошибку.

Если buffer принимает значение NULL и недостаточно памяти для выделения maxlen символов, возникает ошибка и errno принимает значение ENOMEM. Если длина пути, включая завершающий символ null, превышает maxlen, возникает ошибка и errno принимает значение ERANGE. Дополнительные сведения об этих кодах ошибок см. в разделе errno, _doserrno, _sys_errlist, and _sys_nerr.

Заметки

Функция _getdcwd получает полный путь текущей рабочей папки на указанном диске и сохраняет ее в buffer. Если текущей рабочей папкой является корневой каталог, строка заканчивается обратной косой чертой (\). Если рабочая папка находится в каталоге, отличном от корневого, то строка заканчивается именем каталога, а не обратной косой чертой.

_wgetdcwd — это двухбайтовая версия _getdcwd, и её параметр buffer и возвращаемое значение представляют собой двухбайтовые строки. В остальном поведение _wgetdcwd и _getdcwd идентично.

Эта функция потокобезопасна, даже если она зависит от GetFullPathName, которая сама не потокобезопасна. Однако можно нарушить потокобезопасность, если многопоточное приложение вызывает и эту функцию и GetFullPathName. Дополнительные сведения см. в Библиотека MSDN с поисковым параметром 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