_getdcwd, _wgetdcwd
Pobiera pełną ścieżkę bieżącego katalogu roboczego na określonym dysku.
Ważne |
---|
Tego API nie można używać w aplikacjach korzystających ze środowiska wykonawczego Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /ZW. |
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
Parametry
drive
Nieujemna liczba całkowita, określająca dysk (0 = dysk domyślny, 1 = A, 2 = B i tak dalej).Jeśli określony dysk nie jest dostępny lub nie można ustalić rodzaju dysku (na przykład, wymienny, stały, CD-ROM, dysk RAM lub dysk sieciowy), zostaje wywołana procedura obsługi nieprawidłowego parametru, co opisano w Sprawdzanie poprawności parametru.
buffer
Lokalizacja przechowywania dla ścieżki, lub NULL.Jeśli NULL jest określona, ta funkcja przydziela bufor o rozmiarze co najmniej maxlen za pomocą malloc, a zwracana wartość _getdcwd jest wskaźnikiem do przydzielonego buforu.Bufor może zostać uwolniony przez wywołanie free i przekazywania jemu wskaźnika.
maxlen
Różna od zera dodatnia liczba całkowita, określająca maksymalną długość ścieżki, w postaci: char dla _getdcwd i wchar_t dla _wgetdcwd.Jeśli maxlen nie jest większa niż zero, procedura obsługi nieprawidłowego parametru, opisana w Sprawdzanie poprawności parametru zostanie wywołana.
Wartość zwracana
Wskaźnik na ciąg, który reprezentuje pełną ścieżkę bieżącego katalogu roboczego na określonym dysku lub NULL, który wskazuje na błąd.
Jeśli buffer określono jako NULL i nie ma wystarczającej ilości pamięci, aby przydzielić znaki maxlen, wystąpi błąd i errno jest ustawiony jako ENOMEM.Jeśli długość ścieżki, która obejmuje kończący znaku null, przekracza maxlen, wystąpi błąd i errno jest ustawiony na ERANGE.Aby uzyskać więcej informacji na temat tych kodów błędu, zobacz errno, _doserrno, _sys_errlist, and _sys_nerr.
Uwagi
_getdcwd Funkcja pobiera pełną ścieżkę bieżącego katalogu roboczego na określonym dysku i zapisuje go w buffer.Jeśli bieżący katalog roboczy jest ustawiony na katalog główny, ciąg kończy się znakiem kreski ułamkowej odwróconej (\).Jeśli bieżący katalog roboczy jest ustawiany na katalog inny niż katalog główny, ciąg kończy się nazwą katalogu, a nie znakiem kreski ułamkowej odwróconej.
_wgetdcwd jest wersją znaków dwubajtowych _getdcwd, a parametr buffer i wartość zwracana to ciągi znaków dwubajtowych.W innych przypadkach _wgetdcwd i _getdcwd zachowują się identycznie.
Ta funkcja jest bezpieczna wątków, mimo że zależy od GetFullPathName, która sama nie jest bezpieczna od wątków.Jednakże można naruszyć bezpieczeństwo wątków, jeśli wielowątkowa aplikacja wywoła tę funkcję i GetFullPathName.Aby uzyskać więcej informacji, przejdź do Biblioteki MSDN, a następnie wyszukaj GetFullPathName.
Wersja tej funkcji, która ma _nolock sufiks działa identycznie do tej funkcji z tym, że nie jest chroniona przed wątkiem i nie jest chroniona przed ingerencją innych wątków.Aby uzyskać więcej informacji, zobacz _getdcwd_nolock, _wgetdcwd_nolock.
Gdy _DEBUG i _CRTDBG_MAP_ALLOC są zdefiniowane, wzywa do _getdcwd i _wgetdcwd są zastępowane przez wywołania _getdcwd_dbg i _wgetdcwd_dbg tak, aby umożliwić debugowanie alokacji pamięci.Aby uzyskać więcej informacji, zobacz_getdcwd_dbg, _wgetdcwd_dbg.
Rutynowe mapowania zwykłego tekstu
Procedura Tchar.h |
_UNICODE i _MBCS nie zdefiniowany |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> lub <wchar.h> |
Aby uzyskać więcej informacji na temat zgodności, zobacz Zgodność.
Przykład
Zobacz przykład w _getdrive.
Odpowiednik w programie .NET Framework
Katalog systemu bieżących środowisk