Udostępnij za pośrednictwem


_getdcwd, _wgetdcwd

Pobiera pełną ścieżkę bieżącego katalogu roboczego na określonym dysku.

Ważna uwagaWaż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

Zobacz też

Informacje

Formant katalogu

_chdir, _wchdir

_getcwd, _wgetcwd

_getdrive

_mkdir, _wmkdir

_rmdir, _wrmdir