_getdcwd, _wgetdcwd
Pobiera pełną ścieżkę bieżącego katalogu roboczego na określonym dysku.
Ważne |
---|
Ten interfejs API nie można używać w aplikacji, których wykonywanie w czasie wykonywania systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /ZW. |
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
Parametry
drive
Nieujemną liczbą całkowitą, która określa dysk (0 = dysk domyślny, 1 = A, 2 = B i tak dalej).Jeśli określony dysk nie jest dostępny, lub rodzaj dysku (na przykład, odklejalne, stałe, CD-ROM, RAM dysku lub dysku sieciowego) nie można ustalić, obsługa nieprawidłowy parametr, który jest opisany w Sprawdzanie poprawności parametru, jest wywoływany.
buffer
Lokalizację magazynu dla ścieżki, lub NULL.Jeśli NULL jest określony, ta funkcja alokuje bufor o co najmniej maxlen rozmiar za pomocą malloc, a wartość zwracaną przez _getdcwd jest wskaźnikiem do przydzielonego buforu.Bufor mogą zostać uwolnione, wywołując free i przekazanie jej wskaźnik.
maxlen
Różna od zera dodatnia liczba całkowita, określająca maksymalną długość ścieżki, w znakach: char dla _getdcwd i wchar_t dla _wgetdcwd.Jeśli maxlen nie jest większa od zera, obsługa nieprawidłowy parametr, który jest opisany w Sprawdzanie poprawności parametru, jest wywoływany.
Wartość zwracana
Wskaźnik, aby ciąg, który reprezentuje pełną ścieżkę bieżącego katalogu roboczego na określonym dysku lub NULL, która oznacza błąd.
Jeśli buffer jest określony jako NULL i ma za mało pamięci, aby przydzielić maxlen znaków, wystąpi błąd i errno jest ustawiona na ENOMEM.Jeśli długość ścieżki, która zawiera znak null, przekracza maxlen, wystąpi błąd i errno jest ustawiona na ERANGE.Aby uzyskać więcej informacji na temat tych kodów błędów, zobacz errno, _doserrno, _sys_errlist i _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 ustawiona na katalogu innym niż katalog główny, kończy się ciąg z nazwą katalogu, a nie kreski ułamkowej odwróconej.
_wgetdcwdjest ona szerokich znaków do _getdcwdi jego buffer parametru i wartości zwracanej to ciągi szerokich znaków.W przeciwnym razie _wgetdcwd i _getdcwd zachowują się identycznie.
Ta funkcja jest odporna na wielowątkowość, mimo że to zależy od GetFullPathName, która jest sama nie odporna na wielowątkowość.Jednak może naruszyć bezpieczeństwo wątków, jeśli funkcja ta wywołuje aplikacji wielowątkowych i GetFullPathName.Aby uzyskać więcej informacji, przejdź do MSDN Library a następnie wyszukaj GetFullPathName.
Wersja tej funkcji, która ma _nolock sufiks działa identycznie do tej funkcji z tym, że nie jest odporna na wielowątkowość i nie jest chroniony przed ingerencją przez inne wątki.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 , dzięki czemu można debugować alokacji pamięci.Aby uzyskać więcej informacji, zobacz_getdcwd_dbg, _wgetdcwd_dbg.
Tekst rodzajowy rutynowych mapowania
Rozpoczęto wykonywanie procedury TCHAR.h |
_UNICODE i _MBCS nie zdefiniowany |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> lub <wchar.h> |
Informacji dotyczących zgodności, zobacz Zgodność.
Przykład
Zobacz przykład w _getdrive.
Odpowiednik w programie .NET Framework
System::Environment::CurrentDirectory