_getcwd, _wgetcwd
Obtém o diretório de trabalho corrente.
Importante |
---|
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