Compartilhar via


_getdcwd, _wgetdcwd

Obtém o caminho completo do diretório de trabalho atual na unidade especificada.

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 *_getdcwd( 
   int drive,
   char *buffer,
   int maxlen 
);
wchar_t *_wgetdcwd( 
   int drive,
   wchar_t *buffer,
   int maxlen 
);

Parâmetros

  • drive
    Um número inteiro negativo que não especifica a unidade 0 (= unidade padrão, 1 = A, 2 = B e assim por diante).

    Se a unidade especificada não estiver disponível, ou o tipo de unidade (por exemplo, o disco removível, fixo, CD-ROM, RAM, ou unidade de rede) não puder ser determinado, o manipulador de parâmetro inválido, que é descrito em Validação do parâmetro, será chamado.

  • buffer
    Local de armazenamento do caminho ou NULL.

    Se NULL for especificado, essa função atribuirá um buffer com um tamanho de pelo menos maxlen usando malloc, e o valor de retorno de _getdcwd será um ponteiro para o buffer atribuído. O buffer pode ser liberado chamando free e passando-o para o ponteiro.

  • maxlen
    Um número inteiro positivo diferente de zero que especifica o comprimento máximo do caminho, em caracteres: char para _getdcwd e wchar_t para _wgetdcwd.

    Se maxlen não for maior que zero, o manipulador de parâmetro inválido, descrito em Validação do parâmetro, é chamado.

Valor de retorno

Ponteiro para uma cadeia de caracteres que representa o caminho completo do diretório de trabalho atual na unidade especificada ou NULL, que indica um erro.

Se buffer for especificado como NULL e não haver memória suficiente para alocar os caracteres de maxlen, ocorrerá um erro e errno será definido como ENOMEM. Se o comprimento do caminho, que inclui o caractere de terminação nulo, exceder maxlen, ocorrerá um erro e errno será definido como ERANGE. Para obter mais informações sobre esses códigos de erro, consulte errno, _doserrno, _sys_errlist e _sys_nerr.

Comentários

A função _getdcwd obtém o caminho completo do diretório de trabalho atual na unidade especificada e o armazena em buffer. Se o diretório de trabalho atual for definido como raiz, a cadeia de caracteres terminará com uma barra invertida (\). Se o diretório de trabalho atual for definido como um diretório diferente da raiz, a cadeia de caracteres terminará com o nome do diretório e não com uma barra invertida.

_wgetdcwd é uma versão caracteres largos de _getdcwd e o parâmetro buffer e o valor de retorno são cadeias de caracteres de largos. Caso contrário, _wgetdcwd e _getdcwd se comportam de forma idêntica.

Essa função é thread-safe embora ela dependa de GetFullPathName, que em si não é thread-safe. No entanto, você pode violar a segurança de segmentos se seu aplicativo com vários segmentos chamar essa função e GetFullPathName. Para obter mais informações, vá para Biblioteca MSDN e, em seguida, pesquise por GetFullPathName.

A versão dessa função que tem o sufixo _nolock se comporta de forma idêntica à essa função, exceto pelo fato de que ela não é thread-safe e não é protegida contra interferência de outros threads. Para obter mais informações, consulte _getdcwd_nolock, _wgetdcwd_nolock.

Quando _DEBUG e _CRTDBG_MAP_ALLOC são definidos, chamadas para _getdcwd e _wgetdcwd são substituídas por chamadas para _getdcwd_dbg e _wgetdcwd_dbg de modo que você possa depurar alocações de memória. Para obter mais informações, consulte_getdcwd_dbg, _wgetdcwd_dbg.

Mapeamentos da rotina de texto genérico

Rotina Tchar.h

_UNICODE e _MBCS não definidos

_MBCS definido

_UNICODE definido

_tgetdcwd

_getdcwd

_getdcwd

_wgetdcwd

Requisitos

Rotina

Cabeçalho necessário

_getdcwd

<direct.h>

_wgetdcwd

<direct.h> ou <wchar.h>

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

Exemplo

Consulte o exemplo em _getdrive.

Equivalência do .NET Framework

System::Environment::CurrentDirectory

Consulte também

Referência

Controle de diretório

_chdir, _wchdir

_getcwd, _wgetcwd

_getdrive

_mkdir, _wmkdir

_rmdir, _wrmdir