_chdir
, _wchdir
Altera o diretório de trabalho atual.
Sintaxe
int _chdir(
const char *dirname
);
int _wchdir(
const wchar_t *dirname
);
Parâmetros
dirname
Caminho do novo diretório de trabalho.
Valor retornado
Essas funções retornarão um valor de 0 se forem bem-sucedidas. Um valor retornado de -1 indica uma falha. Se não for possível localizar o caminho especificado, errno
será definido como ENOENT
. Se dirname
for NULL
, o manipulador de parâmetro inválido será chamado, conforme descrito em Validação de parâmetro. Se a execução puder continuar, errno
será definido como EINVAL
e a função retornará -1.
Comentários
A função _chdir
muda o diretório de trabalho atual para o diretório especificado por dirname
. O parâmetro dirname
deve se referir a um diretório existente. Essa função pode mudar o diretório de trabalho atual em qualquer unidade. Se uma nova letra da unidade for especificada em dirname
, a letra da unidade padrão mudará também. Por exemplo, suponha que A
seja a letra da unidade padrão e \BIN
seja o diretório de trabalho atual. A chamada a seguir altera o diretório de trabalho atual da unidade C
e \temp
estabelece C
como a nova unidade padrão:
_chdir("c:\\temp");
Quando você usa o caractere de barra invertida opcional (\
) em caminhos, deve colocar duas barras invertidas (\\
) em uma cadeia de caracteres literal C para representar uma única barra invertida (\
).
A função _wchdir
é uma versão de caractere largo da função _chdir
; o argumento dirname
para _wchdir
é uma cadeia de caracteres larga. Caso contrário, _wchdir
e _chdir
se comportam de forma idêntica.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Mapeamento de rotina de texto genérico
Rotina Tchar.h |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tchdir |
_chdir |
_chdir |
_wchdir |
Requisitos
Rotina | Cabeçalho necessário | Cabeçalho opcional |
---|---|---|
_chdir |
<direct.h> |
<errno.h> |
_wchdir |
<direct.h> ou <wchar.h> |
<errno.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_chdir.c
// arguments: C:\WINDOWS
/* This program uses the _chdir function to verify
that a given directory exists. */
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main( int argc, char *argv[] )
{
if(_chdir( argv[1] ) )
{
switch (errno)
{
case ENOENT:
printf( "Unable to locate the directory: %s\n", argv[1] );
break;
case EINVAL:
printf( "Invalid buffer.\n");
break;
default:
printf( "Unknown error.\n");
}
}
else
system( "dir *.exe");
}
Volume in drive C has no label.
Volume Serial Number is 2018-08A1
Directory of c:\windows
08/29/2002 04:00 AM 1,004,032 explorer.exe
12/17/2002 04:43 PM 10,752 hh.exe
03/03/2003 09:24 AM 33,792 ieuninst.exe
10/29/1998 04:45 PM 306,688 IsUninst.exe
08/29/2002 04:00 AM 66,048 NOTEPAD.EXE
03/03/2003 09:24 AM 33,792 Q330994.exe
08/29/2002 04:00 AM 134,144 regedit.exe
02/28/2003 06:26 PM 46,352 setdebug.exe
08/29/2002 04:00 AM 15,360 TASKMAN.EXE
08/29/2002 04:00 AM 49,680 twunk_16.exe
08/29/2002 04:00 AM 25,600 twunk_32.exe
08/29/2002 04:00 AM 256,192 winhelp.exe
08/29/2002 04:00 AM 266,752 winhlp32.exe
13 File(s) 2,249,184 bytes
0 Dir(s) 67,326,029,824 bytes free
Confira também
Controle de diretório
_mkdir
, _wmkdir
_rmdir
, _wrmdir
system
, _wsystem