_chdir
, _wchdir
Cambia el directorio de trabajo actual.
Sintaxis
int _chdir(
const char *dirname
);
int _wchdir(
const wchar_t *dirname
);
Parámetros
dirname
Ruta de acceso del nuevo directorio de trabajo.
Valor devuelto
Estas funciones devuelven un valor de 0 si se ejecutan correctamente. Un valor devuelto de –1 indica error. Si la ruta de acceso especificada no se encuentra, errno
se establece en ENOENT
. Si dirname
es NULL
, se invoca el controlador de parámetros no válidos, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, errno
se establece en EINVAL
y la función devuelve -1.
Comentarios
La función _chdir
cambia el directorio de trabajo actual por el directorio que se especifica mediante dirname
. El parámetro dirname
debe hacer referencia a un directorio existente. Esta función puede cambiar el directorio de trabajo actual de cualquier unidad. Si en dirname
se especifica otra letra de unidad, la letra de unidad predeterminada también se cambia. Por ejemplo, supongamos A
que es la letra de unidad predeterminada y \BIN
es el directorio de trabajo actual. La siguiente llamada cambia el directorio de trabajo actual de la unidad C
a \temp
y establece C
como la nueva unidad predeterminada:
_chdir("c:\\temp");
Si se usa el carácter de barra diagonal inversa opcional (\
) en rutas de acceso, es necesario poner dos barras diagonales inversas (\\
) en un literal de cadena de C para representar una única barra diagonal inversa (\
).
_wchdir
es una versión con caracteres anchos de _chdir
; el argumento dirname
para _wchdir
es una cadena de caracteres anchos. Por lo demás,_wchdir
y _chdir
se comportan de forma idéntica.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignación de rutina de texto genérico
Rutina Tchar.h |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tchdir |
_chdir |
_chdir |
_wchdir |
Requisitos
Routine | Encabezado necesario | Encabezado opcional |
---|---|---|
_chdir |
<direct.h> |
<errno.h> |
_wchdir |
<direct.h> o <wchar.h> |
<errno.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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
Vea también
Control de directorio
_mkdir
, _wmkdir
_rmdir
, _wrmdir
system
, _wsystem