Udostępnij za pośrednictwem


_getcwd, _wgetcwd

Pobiera bieżący katalog roboczy.

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 *_getcwd( 
   char *buffer,
   int maxlen 
);
wchar_t *_wgetcwd( 
   wchar_t *buffer,
   int maxlen 
);

Parametry

  • buffer
    Miejsca przechowywania dla ścieżki.

  • maxlen
    Maksymalna długość ścieżki w znakach: char dla _getcwd i wchar_t dla _wgetcwd.

Wartość zwracana

Zwraca wskaźnik do buffer.A NULL zwracana wartość wskazuje błąd, i errno jest równa albo ENOMEM, wskazujący, że jest za mało pamięci, aby przydzielić maxlen bajtów (po NULL zostanie podany argument jako buffer), lub do ERANGE, wskazująca, czy ścieżka jest dłuższa niż maxlen znaków.Jeśli maxlen jest mniejsza lub równa na wartość 0, funkcja ta wywołuje funkcję obsługi nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.

Aby uzyskać więcej informacji na temat tych i innych kody powrotne, zobacz _doserrno, errno, _sys_errlist i _sys_nerr.

Uwagi

_getcwd Funkcja pobiera pełną ścieżkę bieżącego katalogu roboczego dla dysk domyślny i zapisuje go w buffer.Argument liczby całkowitej maxlen określa maksymalną długość ścieżki.Błąd występuje, jeśli przekracza długość ścieżki (w tym zakończonych znakiem null) maxlen*.*buffer Argument może być NULL; bufor o rozmiarze co najmniej maxlen (więcej tylko wtedy, gdy jest to konieczne) jest przydzielane automatycznie, za pomocą malloc, aby przechowywać ścieżkę.Ten bufor mogą później zostać uwolnione przez wywołanie free i przekazanie jej _getcwd zwraca wartość (wskaźnik do przydzielonego buforu).

_getcwdZwraca wartość typu ciąg, który reprezentuje ścieżkę bieżącego katalogu roboczego.Jeśli bieżący katalog roboczy jest katalogiem głównym, ciąg kończy się kreską ułamkową odwróconą ( \ ).Jeśli bieżący katalog roboczy jest w katalogu innym niż katalog główny, kończy się ciąg z nazwą katalogu, a nie kreski ułamkowej odwróconej.

_wgetcwdjest ona szerokich znaków do _getcwd; buffer wartość argumentów i _wgetcwd są ciągami szerokich znaków._wgetcwdi _getcwd zachowują się identycznie inaczej.

Gdy _DEBUG i _CRTDBG_MAP_ALLOC są zdefiniowane, wzywa do _getcwd i _wgetcwd są zastępowane przez wywołania _getcwd_dbg i _wgetcwd_dbg aby umożliwić debugowanie alokacji pamięci.Aby uzyskać więcej informacji, zobacz _getcwd_dbg, _wgetcwd_dbg.

Tekst rodzajowy rutynowych mapowania

Rozpoczęto wykonywanie procedury TCHAR.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_tgetcwd

_getcwd

_getcwd

_wgetcwd

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_getcwd

<direct.h>

_wgetcwd

<direct.h> lub <wchar.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Przykład

// crt_getcwd.c
// This program places the name of the current directory in the 
// buffer array, then displays the name of the current directory 
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.
 
#include <direct.h>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char* buffer;

   // Get the current working directory: 
   if( (buffer = _getcwd( NULL, 0 )) == NULL )
      perror( "_getcwd error" );
   else
   {
      printf( "%s \nLength: %d\n", buffer, strnlen(buffer) );
      free(buffer);
   }
}
  

Odpowiednik w programie .NET Framework

System::Environment::CurrentDirectory

Zobacz też

Informacje

Formant katalogu

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir