Compartilhar via


_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