Compartilhar via


_getcwd, _wgetcwd

Obtém o diretório de trabalho atual.

Importante

Esta API não pode ser usada em aplicativos que executam no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /ZW.

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

Parâmetros

  • buffer
    Local de armazenamento do caminho.

  • maxlen
    Comprimento máximo do caminho nos caracteres: char para _getcwd e wchar_t para _wgetcwd.

Valor de retorno

Retorna um ponteiro para buffer. Um valor de retorno NULL indica um erro, e errno é um ou outro ENOMEMdefinido como, indicando que não há memória suficiente para atribuir maxlen de bytes (quando um argumento de NULL é fornecido como buffer), ou a ERANGE, indicando que o caminho for mais longo que caracteres de maxlen . Se maxlen é menor ou igual a zero, essa função invoca um manipulador inválido do parâmetro, conforme descrito em Validação do parâmetro.

Para obter mais informações sobre esses e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist, and _sys_nerr.

Comentários

A função de _getcwd obtém o caminho completo do diretório de trabalho atual para a unidade padrão e o coloca em buffer. O argumento maxlen de inteiro especifica o comprimento máximo do caminho. Ocorrerá um erro se o comprimento do caminho (inclusive o caractere terminador nulo) excede maxlen*.* O argumento de buffer pode ser NULL; um buffer por menor que o tamanho maxlen mais (se necessário) é atribuído automaticamente, usando malloc, para armazenar o caminho. Esse buffer pode ser liberado chamando free e passando ao valor de retorno de _getcwd (um ponteiro para o buffer alocado).

_getcwd retorna uma cadeia de caracteres que representa o caminho do diretório de trabalho atual. Se o diretório de trabalho atual é a raiz, a cadeia de caracteres termina com uma barra invertida ( \ ). Se o diretório de trabalho atual é um diretório diferente da raiz, a cadeia de caracteres termina com o nome do diretório e não por uma barra invertida.

_wgetcwd é uma versão de ampla caractere de _getcwd; o argumento de buffer e o valor de retorno de _wgetcwd são cadeias de caracteres de ampla caractere. Caso contrário, _wgetcwd e _getcwd, ao contrário, se comportam de forma idêntica.

Quando _DEBUG e _CRTDBG_MAP_ALLOC são definidas, as chamadas para _getcwd e _wgetcwd são substituídos por chamadas a _getcwd_dbg e a _wgetcwd_dbg para permitir depuração alocações de memória. Para obter mais informações, consulte _getcwd_dbg, _wgetcwd_dbg.

Mapeamentos da rotina de texto genérico

Rotina Tchar.h

_UNICODE e _MBCS não definidos

_MBCS definido

_UNICODE definido

_tgetcwd

_getcwd

_getcwd

_wgetcwd

Requisitos

Rotina

Cabeçalho necessário

_getcwd

<direct.h>

_wgetcwd

<direct.h> ou <wchar.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

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

Equivalência do .NET Framework

System::Environment::CurrentDirectory

Consulte também

Referência

Controle de diretório

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir