_getdcwd, _wgetdcwd
Nach oben zu direct.h - Index
Header-Datei
direct.h
Kategorie
Verzeichnisbearbeitungsroutinen
Prototyp
char * _getdcwd(int drive, char *buffer, int buflen);
wchar_t * _wgetdcwd(int drive, wchar_t *buffer, int buflen);
Beschreibung
Ermittelt das aktuelle Verzeichnis auf dem angegebenen Laufwerk.
_getdcwd ruft den vollständigen Pfadnamen des Arbeitsverzeichnis auf dem angegebenen Laufwerk (einschließlich Laufwerksname) ab, der bis zu buflen Bytes lang sein kann, und speichert diesen in buffer. Wenn der vollständige Pfadname (einschließlich Nullterminator) länger als buflen ist, tritt ein Fehler auf. Der Parameter drive erhält für das Standardlaufwerk den Wert 0, 1 = A, 2 = B usw.
Wenn es sich beim Arbeitsverzeichnis um das Stammverzeichnis handelt, wird die vollständige Pfadangabe durch den umgekehrten Schrägstrich abgeschlossen. Handelt es sich beim Arbeitsverzeichnis um ein Unterverzeichnis, wird nach dem Namen des Unterverzeichnisses kein umgekehrter Schrägstrich als abschließendes Zeichen angegeben.
Wenn buffer gleich NULL ist, reserviert _getdcwd einen mindestens buflen Bytes langen Puffer. Sie können den reservierten Puffer später freigeben, indem Sie die Funktion free mit dem Rückgabewert von _getdcwd aufrufen.
Rückgabewert
Bei erfolgreicher Ausführung gibt _getdcwd einen Zeiger auf den Puffer zurück, der den Namen des aktuellen Verzeichnisses auf dem angegebenen Laufwerk enthält.
Andernfalls gibt die Funktion NULL zurück und weist der globalen Variablen errno einen der folgenden Werte zu:
ENOMEM |
Nicht genügend Speicher zur Zuweisung eines Puffers vorhanden (buffer ist NULL). |
ERANGE |
Der Verzeichnisname ist länger als buflen (buffer ist nicht NULL). |
Beispiel
#include <direct.h>
#include <stdio.h>
char buf[65];
void main()
{
if (_getdcwd(3, buf, sizeof(buf)) == NULL)
perror("Unable to get current directory of drive C");
else
printf("Current directory of drive C is %s\n",buf);
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
_getdcwd |
+ |
|||
_wgetdcwd |
nur NT |