Compartir a través de


_getcwd, _wgetcwd

Obtiene el directorio de trabajo actual.

Nota importanteImportante

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

char *_getcwd( 
   char *buffer,
   int maxlen 
);
wchar_t *_wgetcwd( 
   wchar_t *buffer,
   int maxlen 
);

Parámetros

  • buffer
    Ubicación de almacenamiento de la ruta.

  • maxlen
    Longitud máxima de ruta en caracteres: char para _getcwd y wchar_t para _wgetcwd.

Valor devuelto

Devuelve un puntero a buffer.Un valor devuelto de NULL indica un error, y errno es cualquier establecidos en ENOMEM, que indica que hay memoria suficiente para asignar los bytes de maxlen (cuando un argumento de NULL se proporciona como buffer), o a ERANGE, que indica que la ruta de acceso es más larga que los caracteres de maxlen.Si maxlen es menor o igual que cero, esta función invoca un controlador no válido de parámetro, tal y como se describe en Validación de parámetros.

Para obtener más información sobre éstos y otros códigos de retorno, vea _doserrno, errno, _sys_errlist, y _sys_nerr.

Comentarios

La función de _getcwd obtiene la ruta de acceso completa del directorio de trabajo actual para la unidad predeterminada y la almacena en buffer.El argumento entero maxlen especifica la longitud máxima de la ruta.Se produce un error si la longitud de la ruta (incluido el carácter null) supera maxlen*.* El argumento de buffer puede ser NULL; un búfer por lo menos el tamaño maxlen (más sólo si es necesario) automáticamente se asigna, mediante malloc, para almacenar la ruta.Este búfer puede liberar más adelante llamando a free y pasando el valor devuelto de _getcwd (un puntero al búfer asignado).

_getcwd devuelve una cadena que representa la ruta de acceso del directorio de trabajo actual.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.

_wgetcwd es una versión con caracteres anchos de _getcwd; el argumento de buffer y el valor devuelto de _wgetcwd son cadenas de caracteres._wgetcwd y _getcwd se comportan exactamente igual de otra manera.

Cuando se definen _DEBUG y _CRTDBG_MAP_ALLOC, las llamadas a _getcwd y _wgetcwd son reemplazados por llamadas a _getcwd_dbg y a _wgetcwd_dbg para permitir la depuración asignaciones de memoria.Para obtener más información, vea _getcwd_dbg, _wgetcwd_dbg.

Asignaciones de la rutina de Genérico- texto

Rutina de Tchar.h

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tgetcwd

_getcwd

_getcwd

_wgetcwd

Requisitos

Rutina

Encabezado necesario

_getcwd

<direct.h>

_wgetcwd

<direct.h> o <wchar.h>

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

Ejemplo

// 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);
   }
}
  

Equivalente en .NET Framework

System::Environment::CurrentDirectory

Vea también

Referencia

Control de directorio

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir