_getcwd, _wgetcwd
Получает текущую рабочую папку.
Важно |
---|
Этот API нельзя использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в разделе Функции CRT не поддерживаются при /ZW. |
char *_getcwd(
char *buffer,
int maxlen
);
wchar_t *_wgetcwd(
wchar_t *buffer,
int maxlen
);
Параметры
buffer
Место хранения для пути.maxlen
Максимальная длина пути в символах. char для _getcwd и wchar_t для _wgetcwd.
Возвращаемое значение
Возвращает указатель на объект buffer.Возвращаемое значение NULL указывает на ошибку, а параметр errno имеет любое значение ENOMEM, показывающее, что недостаточно памяти для выделения байтов maxlen (если аргумент NULL указан как buffer), или значение ERANGE, указывающее, что более длинный путь, чем символов maxlen.Если значение maxlen меньше или равно нулю, эта функция вызывает обработчик недопустимого параметра, как описано в разделе Проверка параметров.
Дополнительные сведения об этих и других кодах возврата см. в разделе _doserrno, errno, _sys_errlist и _sys_nerr.
Заметки
Функция _getcwd возвращает полный путь текущей рабочей папки для диска по умолчанию и сохраняет его в buffer.Аргумент maxlen - целое число указывает максимальную длину для пути.Ошибка возникает, если длина пути (включая конечное нуль-символ) превышает 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