_getdcwd, _wgetdcwd

 

Publicado: octubre de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Obtiene la ruta de acceso completa del directorio de trabajo actual en la unidad especificada.

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

Parámetros

drive
Entero no negativo que especifica la unidad (0 = unidad predeterminada, 1 = A, 2 = B, etc.).

Si la unidad especificada no está disponible, o no se puede determinar la clase de unidad (por ejemplo, extraíble, fija, CD-ROM, disco RAM o unidad de red), se invoca el controlador de parámetros no válidos, como se describe en Parameter Validation.

buffer
Ubicación de almacenamiento de la ruta de acceso o NULL.

Si se especifica NULL , esta función asigna un búfer con el tamaño de maxlen como mínimo, para lo que usa malloc, y el valor devuelto de _getdcwd es un puntero al búfer asignado. El búfer se puede liberar llamando a free y pasándole el puntero.

maxlen
Entero positivo distinto de cero que especifica la longitud máxima de la ruta de acceso en caracteres: char para _getdcwd y wchar_t para _wgetdcwd.

Si se especifica maxlen no es mayor que cero, se invoca el controlador de parámetros no válidos, como se describe en Parameter Validation.

Puntero a una cadena que representa la ruta de acceso completa del directorio de trabajo actual en la unidad especificada, o NULL, que indica un error.

Si se especifica buffer como NULL y no hay memoria suficiente para asignar el número de caracteres de maxlen , se produce un error y errno se establece en ENOMEM. Si la longitud de la ruta de acceso, incluido el carácter nulo de terminación, es mayor que el valor de maxlen, se produce un error y errno se establece en ERANGE. Para obtener más información acerca de estos códigos de error, consulte errno, _doserrno, _sys_errlist y _sys_nerr.

La función _getdcwd obtiene la ruta de acceso completa del directorio de trabajo actual en la unidad especificada y la almacena en buffer. Si el directorio de trabajo actual se establece en la raíz, la cadena finaliza con una barra diagonal inversa (\). Si el directorio de trabajo actual es un directorio distinto de la raíz, la cadena finaliza con el nombre de directorio y no con una barra diagonal inversa.

_wgetdcwd es una versión con caracteres anchos de _getdcwd, y su parámetro buffer y su valor devuelto son cadenas de caracteres anchos. De lo contrario, los objetos _wgetdcwd y _getdcwd se comportan de forma idéntica.

Esta función es segura para subprocesos a pesar de que depende de GetFullPathName, que sí misma no es segura para subprocesos. Sin embargo, la seguridad para subprocesos podría ponerse en riesgo si la aplicación multiproceso llama a esta función y a GetFullPathName. Para obtener más información, vaya a MSDN Library y busque GetFullPathName.

La versión de esta función con el sufijo _nolock tiene un comportamiento idéntico al de esta función, salvo que no es segura para subprocesos y no está protegida contra interferencias de otros subprocesos. Para obtener más información, vea _getdcwd_nolock, _wgetdcwd_nolock.

Cuando se definen _DEBUG y _CRTDBG_MAP_ALLOC , las llamadas a _getdcwd y _wgetdcwd se reemplazan por llamadas a _getdcwd_dbg y _wgetdcwd_dbg para que se puedan depurar las asignaciones de memoria. Para obtener más información, consulte_getdcwd_dbg, _wgetdcwd_dbg.

Asignaciones de rutina de texto genérico

Rutina Tchar.h_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tgetdcwd_getdcwd_getdcwd_wgetdcwd
RutinaEncabezado necesario
_getdcwd<direct.h>
_wgetdcwd<direct.h> o <wchar.h>

Para obtener más información sobre compatibilidad, vea Compatibility.

Consulte el ejemplo de _getdrive.

System::Environment::CurrentDirectory

Control de directorio
_chdir, _wchdir
_getcwd, _wgetcwd
_getdrive
_mkdir, _wmkdir
_rmdir, _wrmdir

Mostrar: