Freigeben über


_getcwd, _wgetcwd

Ruft das aktuelle Arbeitsverzeichnis ab.

Syntax

char *_getcwd(
   char *buffer,
   int maxlen
);
wchar_t *_wgetcwd(
   wchar_t *buffer,
   int maxlen
);

Parameter

buffer
Speicherort für den Pfad.

maxlen
Maximale Länge des Pfads in Zeichen: char für _getcwd und wchar_t für _wgetcwd.

Rückgabewert

Gibt einen Zeiger auf bufferzurück. Ein NULL Rückgabewert gibt einen Fehler an und errno wird entweder auf ENOMEM, der angibt, dass nicht genügend Arbeitsspeicher vorhanden ist, um Bytes zuzuweisen maxlen (wenn ein NULL Argument angegeben bufferwird) oder ERANGE, um anzugeben, dass der Pfad länger als maxlen Zeichen ist. Wenn maxlen diese Funktion kleiner oder gleich Null ist, ruft diese Funktion einen ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben.

Weitere Informationen zu diesen und anderen Rückgabecodes finden Sie unter , , _doserrno, _sys_errlistund _sys_nerr.errno

Hinweise

Die _getcwd -Funktion ruft für das Standardlaufwerk den vollständigen Pfad des aktuellen Arbeitsverzeichnis ab und speichert ihn unter buffer. Das ganzzahlige Argument maxlen gibt die maximale Länge für den Pfad an. Wenn die Länge des Pfads (einschließlich des beendeten NULL-Zeichens) überschritten wird maxlen, tritt ein Fehler auf. Das buffer-Argument kann NULL sein. Es wird dann automatisch ein Puffer mit einer Mindestgröße von maxlen (mehr nur bei Bedarf) zugeordnet und malloc zum Speichern des Pfades verwendet. Dieser Puffer kann später geleert werden, indem free aufgerufen und der _getcwd -Rückgabewert (ein Zeiger auf den zugeordneten Puffer) übergeben werden.

_getcwd gibt eine Zeichenfolge zurück, die den Pfad des aktuellen Arbeitsverzeichnisses repräsentiert. Wenn das aktuelle Arbeitsverzeichnis der Stamm ist, endet die Zeichenfolge mit einem umgekehrten Schrägstrich (\). Wenn das aktuelle Arbeitsverzeichnis nicht das Stammverzeichnis ist, endet die Zeichenfolge mit dem Verzeichnisnamen und nicht mit einem umgekehrten Schrägstrich.

_wgetcwd ist eine Breitzeichenversion von _getcwd. Das Argument buffer und der Rückgabewert von _wgetcwd sind Zeichenfolgen mit Breitzeichen. _wgetcwd und _getcwd verhalten sich andernfalls identisch.

Wann _DEBUG definiert und _CRTDBG_MAP_ALLOC definiert werden, werden Aufrufe an _getcwd und _wgetcwd _wgetcwd_dbgwerden durch Aufrufe _getcwd_dbg ersetzt, damit Sie Speicherzuweisungen debuggen können. Weitere Informationen finden Sie unter _getcwd_dbg, _wgetcwd_dbgverwalten.

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.

Mapping generischer Textroutinen

Tchar.h-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_tgetcwd _getcwd _getcwd _wgetcwd

Anforderungen

Routine Erforderlicher Header
_getcwd <direct.h>
_wgetcwd <direct.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_getcwd.c
// Compile with: cl /W4 crt_getcwd.c
// This program places the name of the current directory in the
// buffer array, then displays the name of the current directory
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.

#include <direct.h> // _getcwd
#include <stdlib.h> // free, perror
#include <stdio.h>  // printf
#include <string.h> // strlen

int main( void )
{
   char* buffer;

   // Get the current working directory:
   if ( (buffer = _getcwd( NULL, 0 )) == NULL )
      perror( "_getcwd error" );
   else
   {
      printf( "%s \nLength: %zu\n", buffer, strlen(buffer) );
      free(buffer);
   }
}
C:\Code

Siehe auch

Verzeichnissteuerelement
_chdir, _wchdir
_mkdir, _wmkdir
_rmdir, _wrmdir