_getcwd, _wgetcwd

Ruft das aktuelle Arbeitsverzeichnis ab.

Wichtig

Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.

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 buffer zurück. Ein NULL-Rückgabewert zeigt einen Fehler an, und errno wird entweder auf ENOMEM festgelegt, um anzugeben, dass nicht genügend Arbeitsspeicher zum Zuordnen von maxlen Bytes vorhanden ist (wenn ein NULL-Argument als buffer angegeben wird), oder auf ERANGE, um anzugeben, dass der Pfad länger als maxlen Zeichen ist. Wenn maxlen kleiner oder gleich Null ist, ruft diese Funktion einen Handler für ungültige Parameter auf, wie in Parametervalidierung beschrieben.

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

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. Ein Fehler tritt auf, wenn die Länge des Pfads (einschließlich des abschließenden NULL-Zeichens) maxlen überschreitet. 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.

_getcwdgibt eine Zeichenfolge zurück, die den Pfad des aktuellen Arbeitsverzeichnisses repräsentiert. Wenn das aktuelle Arbeitsverzeichnis das Stammverzeichnis 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.

Wenn _DEBUG und _CRTDBG_MAP_ALLOC definiert sind, werden Aufrufe von _getcwd und _wgetcwd durch Aufrufe von _getcwd_dbg und _wgetcwd_dbg ersetzt, um das Debuggen von Speicherbelegungen zuzulassen. Weitere Informationen finden Sie unter _getcwd_dbg, _wgetcwd_dbg.

Zuordnung 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
// 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>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char* buffer;

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

.NET Framework-Entsprechung

System::Environment::CurrentDirectory

Siehe auch

Referenz

Verzeichnissteuerung

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir