Share via


_chdir、_wchdir

更新 : 2007 年 11 月

現在の作業ディレクトリを変更します。

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 のワイド文字バージョンです。_wchdir の dirname 引数はワイド文字列です。引数の指定以外では、. _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");
}

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

.NET Framework の相当するアイテム

System::Environment::CurrentDirectory

参照

参照

ディレクトリ制御

_mkdir、_wmkdir

_rmdir、_wrmdir

system、_wsystem