_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, B = 2 и т д).Если указанный диск недоступен или тип диска (например, удаляемый, фиксированный, компакт-диск, электронный диск или сетевой диск) не могут быть определены, то обработчик недопустимого параметра, как описано в Проверка параметров, вызывается.
buffer
Место хранения для пути, или NULL.Если указано значение NULL, то эта функция выделяет буфер не менее maxlen с помощью malloc, возвращаемое значение _getdcwd указатель на выбранный буфер.Буфера может быть удаленного путем вызова метода free и передачи ему указатель.
maxlen
Отлично от нуля положительное целое число, определяющее максимальную длину пути, в символах. char для _getdcwd и wchar_t для _wgetdcwd.Если maxlen не больше нуля, то обработчик недопустимого параметра, как описано в Проверка параметров, вызывается.
Возвращаемое значение
Указатель на строку, которая представляет полный путь текущей рабочей папки на указанном диске, или NULL, который указывает на ошибку.
Если указано значение buffer, как NULL, а также недостаточно памяти для выделения символов maxlen, возникает ошибка и для параметра errno установлено значение ENOMEM.Если длина пути, включая конечное нуль-символ, превышает maxlen, возникает ошибка и для параметра errno установлено значение ERANGE.Дополнительные сведения об этих кодах ошибок см. в разделе errno, _doserrno, _sys_errlist и _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