_getdcwd, _wgetdcwd

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

Nota importanteImportante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución.Para obtener más información, vea Funciones de CRT no admitidas con /ZW.

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 Validación de parámetros.

  • 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 maxlen no es mayor que cero, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros.

Valor devuelto

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 sobre estos códigos de error, vea errno, _doserrno, _sys_errlist y _sys_nerr.

Comentarios

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 es 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, vea_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

Requisitos

Rutina

Encabezado necesario

_getdcwd

<direct.h>

_wgetdcwd

<direct.h> o <wchar.h>

Para obtener más información de compatibilidad, vea Compatibilidad.

Ejemplo

Consulte el ejemplo de _getdrive.

Equivalente en .NET Framework

System::Environment::CurrentDirectory

Vea también

Referencia

Control de directorio

_chdir, _wchdir

_getcwd, _wgetcwd

_getdrive

_mkdir, _wmkdir

_rmdir, _wrmdir