_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 に変更され、ドライブ C が新しい既定ドライブとなります。
_chdir("c:\\temp");
パスにオプションの円記号文字 (\) を使用する場合、C リテラル文字列で 1 つの円記号 (\) を表すには、2 つの円記号 (\\) を記述する必要があります。
_wchdir ワイド文字バージョンです_chdir; dirnameの引数_wchdir ワイド文字の文字列. _wchdir と_chdir のそれ以外の場合動作は同じ。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_tchdir |
_chdir |
_chdir |
_wchdir |
必要条件
ルーチン |
必須ヘッダー |
オプション ヘッダー |
---|---|---|
_chdir |
<direct.h> |
<errno.h> |
_wchdir |
<direct.h> または <wchar.h> |
<errno.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// 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");
}
同等の .NET Framework 関数
System::Environment::CurrentDirectory