_chdir
, _wchdir
現在の作業ディレクトリを変更します。
構文
int _chdir(
const char *dirname
);
int _wchdir(
const wchar_t *dirname
);
パラメーター
dirname
新しい作業ディレクトリのパス。
戻り値
これらの関数は、成功した場合、値 0 を返します。 戻り値 -1 は失敗を示します。 指定したパスが見つからない場合、errno
は ENOENT
に設定されます。 dirname
が NULL
の場合は、「パラメーターの検証」で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、 errno
が EINVAL
に設定され、関数から -1 が返されます。
解説
_chdir
関数は、現在の作業ディレクトリを dirname
で指定されたディレクトリに変更します。 dirname
パラメーターは、既存のディレクトリを示す必要があります。 この関数は、任意のドライブの現在の作業ディレクトリを変更できます。 新しいドライブ文字が dirname
で指定されている場合、既定のドライブ文字も同様に変更されます。 たとえば、 A
が既定のドライブ文字であり、 \BIN
が現在の作業ディレクトリであるとします。 次の呼び出しでは、ドライブ C
の現在の作業ディレクトリが \temp
に変更され、新しい既定のドライブとして C
が確立されます。
_chdir("c:\\temp");
パスに省略可能な円記号 (\
) を使用すると、C の文字列リテラルでは 1 つの円記号 (\\
) を表すのに 2 つの円記号 (\
) を使用する必要があります。
_wchdir
関数は、 _chdir
関数のワイド文字バージョンです。 dirname
関数の引数 _wchdir
は、ワイド文字列です。 それ以外では、_wchdir
と _chdir
の動作は同じです。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
汎用テキスト ルーチン マッピング
Tchar.h ルーチン |
_UNICODE と _MBCS が定義されていない |
_MBCS が定義されている |
_UNICODE が定義されている |
---|---|---|---|
_tchdir |
_chdir |
_chdir |
_wchdir |
要件
ルーチンによって返される値 | 必須ヘッダー | オプション ヘッダー |
---|---|---|
_chdir |
<direct.h> |
<errno.h> |
_wchdir |
<direct.h> または <wchar.h> |
<errno.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// 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
関連項目
ディレクトリ コントロール
_mkdir
, _wmkdir
_rmdir
, _wrmdir
system
, _wsystem