Se recomienda usar Visual Studio 2017

_getcwd, _wgetcwd

 

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 el directorio de trabajo actual.

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

Parámetros

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

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

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

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

La función _getcwd obtiene la ruta de acceso completa del directorio de trabajo actual para la unidad predeterminada y la almacena en buffer. El argumento de entero maxlen especifica la longitud máxima de la ruta de acceso. Se produce un error si la longitud de la ruta de acceso (incluido el carácter nulo final) es mayor que maxlen. La función buffer puede ser NULL; se asigna automáticamente un búfer con un tamaño mínimo de maxlen (más solo en caso necesario) mediante malloc, para almacenar la ruta de acceso. Este búfer se 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 anchos. Por lo demás, _wgetcwd y _getcwd se comportan de forma idéntica.

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

Asignaciones de rutina de texto genérico

Rutina Tchar.h_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tgetcwd_getcwd_getcwd_wgetcwd
RutinaEncabezado necesario
_getcwd<direct.h>
_wgetcwd<direct.h> o <wchar.h>

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

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

C:\Code  

System::Environment::CurrentDirectory

Control de directorio
_chdir, _wchdir
_mkdir, _wmkdir
_rmdir, _wrmdir

Mostrar: