Compartilhar via


_getcwd, _wgetcwd

Obtém a diretório de trabalho corrente.

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 do caminho em caracteres: char para _getcwdand wchar_tfor _wgetcwd.

Valor de retorno

Retorna um ponteiro para buffer. A NULL valor retornado indica um erro, e errno é conjunto para ENOMEM, indicando que há memória suficiente para alocar maxlen bytes (quando um NULL argumento é passado sistema autônomo buffer), ou para ERANGE, indicando que o caminho é maior que maxlen caracteres. If maxlen é menor ou igual a zero, essa função invoca um manipulador de parâmetro inválido, conforme 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

The _getcwd função obtém o caminho completo da diretório de trabalho corrente para a unidade padrão e a armazena no buffer. O argumento de inteiro maxlen Especifica o comprimento máximo para o caminho. Ocorre um erro se o comprimento do caminho (incluindo o caractere nulo de terminação) excede maxlen*.* The buffer argumento pode ser NULL; um buffer de dimensionar de pelo menos maxlen (mais apenas se necessário) é alocado automaticamente, usando malloc, para armazenar o caminho. Esse buffer posteriormente pode ser liberado chamando free e passando-o _getcwd (um ponteiro para o buffer alocado) o valor retornado.

_getcwd Retorna uma seqüência de caracteres que representa o caminho da diretório de trabalho corrente. Se a diretório de trabalho corrente é a raiz, a seqüência de caracteres termina com uma barra invertida (\ ). Se a diretório de trabalho corrente é um diretório diferente da raiz, a seqüência de caracteres terminará com o nome do diretório e não com uma barra invertida.

_wgetcwd é uma versão de caractere largo da _getcwd; o buffer valor de argumento e o retorno de _wgetcwd são seqüências de caracteres largos. _wgetcwd e _getcwd tenham comportamento idêntico caso contrário.

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

Mapeamentos de rotina de texto genérica

Rotina tchar.h

_UNICODE e _MBCS não definido

_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 de compatibilidade, consulte 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);
   }
}

C:\Code

Equivalente do NET Framework

sistema::ambiente::CurrentDirectory

Consulte também

Referência

Controle de diretório

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir