Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Changes the current working directory.
Syntax
int _chdir(
const char *dirname
);
int _wchdir(
const wchar_t *dirname
);
Parameters
dirname
Path of new working directory.
Return value
These functions return a value of 0 if successful. A return value of -1 indicates failure. If the specified path couldn't be found, errno
is set to ENOENT
. If dirname
is NULL
, the invalid parameter handler is invoked, as described in Parameter validation. If execution is allowed to continue, errno
is set to EINVAL
and the function returns -1.
Remarks
The _chdir
function changes the current working directory to the directory specified by dirname
. The dirname
parameter must refer to an existing directory. This function can change the current working directory on any drive. If a new drive letter is specified in dirname
, the default drive letter is changed as well. For example, assume A
is the default drive letter and \BIN
is the current working directory. The following call changes the current working directory for drive C
to \temp
and establishes C
as the new default drive:
_chdir("c:\\temp");
When you use the optional backslash character (\
) in paths, you must place two backslashes (\\
) in a C string literal to represent a single backslash (\
).
_wchdir
is a wide-character version of _chdir
; the dirname
argument to _wchdir
is a wide-character string. _wchdir
and _chdir
behave identically otherwise.
By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.
Generic-text routine mapping
Tchar.h routine |
_UNICODE and _MBCS not defined |
_MBCS defined |
_UNICODE defined |
---|---|---|---|
_tchdir |
_chdir |
_chdir |
_wchdir |
Requirements
Routine | Required header | Optional header |
---|---|---|
_chdir |
<direct.h> |
<errno.h> |
_wchdir |
<direct.h> or <wchar.h> |
<errno.h> |
For more compatibility information, see Compatibility.
Example
// 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
See also
Directory control
_mkdir
, _wmkdir
_rmdir
, _wrmdir
system
, _wsystem