_getdcwd, _wgetdcwd

Aus RAD Studio
Wechseln zu: Navigation, Suche

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