Partilhar via


_getcwd, _wgetcwd

Obtém o diretório de trabalho corrente.

Observação importanteImportante

Este API não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /ZW.

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

Parâmetros

  • buffer
    Local de armazenamento para o caminho.

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

Valor de retorno

Retorna um ponteiro para buffer.Um valor de retorno de NULL indica um erro, e errno tanto definido como ENOMEM, indicando que há uma suficientes para atribuir bytes de memória maxlen (quando um argumento de NULL é dado como buffer), ou a ERANGE, indicando que o caminho é maior que maxlen de caracteres.Se maxlen é menor ou igual a zero, essa função chama um manipulador de parâmetro inválido, como descrito em Validação de parâmetro.

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

Comentários

A função de _getcwd obtém o caminho completo do diretório de trabalho corrente para a unidade padrão e armazená-lo em buffer.O argumento maxlen inteiro especifica o comprimento máximo para o caminho.Um erro ocorrerá se o comprimento de caminho (incluindo o caractere de terminação zero) excede maxlen*.* O argumento de buffer pode ser NULL; um buffer pelo menor tamanho maxlen (mais somente se necessário) é alocado automaticamente, usando malloc, para armazenar o caminho.Este buffer posteriormente pode ser liberado chamando free e passando a ele o valor de retorno de _getcwd (um ponteiro para o buffer atribuído).

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

_wgetcwd é uma versão de largo- caractere de _getcwd; o argumento de buffer e o valor de retorno de _wgetcwd são cadeias de caracteres de largo- caractere._wgetcwd e _getcwd se comportam de forma idêntica.

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

Mapeamentos da rotina de Genérico- texto

Rotina de Tchar.h

_UNICODE e não definidos _MBCS

_MBCS definido

_UNICODE definido

_tgetcwd

_getcwd

_getcwd

_wgetcwd

Requisitos

Rotina

Cabeçalho necessário

_getcwd

<direct.h>

_wgetcwd

<direct.h> ou <wchar.h>

Para mais informações, consulte Compatibilidade de compatibilidade na introdução.

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