_chdir
, _wchdir
Ändert das aktuelle Arbeitsverzeichnis.
Syntax
int _chdir(
const char *dirname
);
int _wchdir(
const wchar_t *dirname
);
Parameter
dirname
Pfad des neuen Arbeitsverzeichnisses.
Rückgabewert
Diese Funktionen geben bei Erfolg den Wert 0 zurück. Ein Rückgabewert von -1 gibt einen Fehler an. Wenn der angegebene Pfad nicht gefunden werden konnte, errno
wird auf ENOENT
. Wenn dirname
den Wert NULL
annimmt, wird der Handler für ungültige Parameter aufgerufen, wie in Parameter Validation. Wenn die weitere Ausführung zugelassen wird, wird errno
auf EINVAL
gesetzt, und die Funktion gibt – 1 zurück.
Hinweise
Die _chdir
-Funktion ändert das aktuelle Arbeitsverzeichnis und wählt das Verzeichnis aus, das durch dirname
angegeben ist. Der dirname
-Parameter muss auf ein vorhandenes Verzeichnis verweisen. Diese Funktion kann das aktuelle Arbeitsverzeichnis auf jedem beliebigen Laufwerk ändern. Wenn ein neuer Laufwerkbuchstabe in dirname
angegeben wird, wird der Standardlaufwerkbuchstabe ebenfalls geändert. Angenommen, es handelt sich um A
den Standardlaufwerkbuchstaben und \BIN
das aktuelle Arbeitsverzeichnis. Der folgende Aufruf ändert das aktuelle Arbeitsverzeichnis für Laufwerk in \temp
das C
neue Standardlaufwerk und richtet C
es als neues Standardlaufwerk ein:
_chdir("c:\\temp");
Wenn Sie den optionalen umgekehrten Schrägstrich (\
) in Pfadangaben verwenden, müssen Sie in einem C-Zeichenfolgenliteral zwei umgekehrte Schrägstriche (\\
) platzieren, um einen einzelnen umgekehrten Schrägstrich (\
) darzustellen.
_wchdir
ist eine Breitzeichenversion von _chdir
. Das dirname
-Argument für _wchdir
ist eine Breitzeichenfolge. _wchdir
und _chdir
verhalten sich andernfalls identisch.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Generische Textroutinenzuordnung
Tchar.h -Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tchdir |
_chdir |
_chdir |
_wchdir |
Anforderungen
Routine | Erforderlicher Header | Optionaler Header |
---|---|---|
_chdir |
<direct.h> |
<errno.h> |
_wchdir |
<direct.h> oder <wchar.h> |
<errno.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// 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
Siehe auch
Verzeichnissteuerelement
_mkdir
, _wmkdir
_rmdir
, _wrmdir
system
, _wsystem