_getcwd, _wgetcwd
Ruft das aktuelle Arbeitsverzeichnis ab.
Wichtig |
---|
Diese API kann nicht in den Anwendungen verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW. |
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 Pfades 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 gibt einen Fehler an, und legen errno ist jede zu ENOMEM und gibt an, dass nicht genügend Arbeitsspeicher vorhanden ist, mit der maxlen Bytes zuzuordnen (wenn ein NULL-Argument als buffer angegeben ist), oder zu ERANGE an und angibt, dass der Pfad länger als maxlen Zeichen ist.Wenn maxlen kleiner oder gleich null ist, Aufrufe dieser Funktion ein ungültiger Parameterhandler, 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 den vollständigen Pfad des aktuellen Arbeitsverzeichnis für das Standardlaufwerk ab und speichert ihn bei buffer.Das ganzzahlige Argument maxlen gibt die maximale Länge für den Pfad.Ein Fehler tritt auf, wenn die Länge des Pfads (einschließlich NULL) maxlen überschreitet . Das buffer-Argument kann NULL sein; ein Puffer mindestens der Größe maxlen (nur bei Bedarf) wird automatisch, mit malloc zugeordnet, um den Pfad zu speichern.Dieser Puffer kann später freigegeben werden, indem free aufruft und es der _getcwd Rückgabewert Punkten (ein Zeiger auf den zugeordneten Puffer).
_getcwd gibt eine Zeichenfolge zurück, die den Pfad des aktuellen Arbeitsverzeichnis darstellt.Wenn das aktuelle Arbeitsverzeichnis der Stamm ist, beendet die Zeichenfolge mit einem umgekehrten Schrägstrich ( \ ).Wenn das aktuelle Arbeitsverzeichnis ein Verzeichnis als dem Stamm ist, beendet die Zeichenfolge mit dem Verzeichnisnamen und nicht mit einem umgekehrten Schrägstrich.
_wgetcwd ist eine Breitzeichen-Version von _getcwd; buffer das Argument und der Rückgabewert von _wgetcwd sind Breitzeichen-Zeichenfolgen._wgetcwd und _getcwd verhalten sich andernfalls identisch.
Wenn _DEBUG und _CRTDBG_MAP_ALLOC definiert sind, werden Aufrufe _getcwd und _wgetcwd durch Aufrufe _getcwd_dbg und zu _wgetcwd_dbg ersetzt, um das Debuggen von Speicherbelegungen zu ermöglichen.Weitere Informationen finden Sie unter _getcwd_dbg, _wgetcwd_dbg.
Zuordnung generische 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 Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.
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