_getdcwd, _wgetdcwd
Obtiene la ruta de acceso completa del directorio de trabajo actual en la unidad especificada.
Importante |
---|
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