_getcwd, _wgetcwd

Pobiera bieżący katalog roboczy.

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

Parametry

  • buffer
    Lokalizacja 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.Wartość zwracana NULL wskazuje błąd i errno jest ustawiane na ENOMEM, wskazując, że jest za mało pamięci, aby przydzielić maxlen bajtów (gdy argument NULL jest podany jako buffer) lub na ERANGE, wskazując, że ścieżka jest dłuższa niż maxlen znaków.Jeśli maxlen jest mniejsza lub równy zero, funkcja ta wywoła procedurę obsługi nieprawidłowego parametru, zgodnie z opisem w Sprawdzanie poprawności parametru.

Aby uzyskać więcej informacji na temat tych i innych kodów zwrotu, zobacz _doserrno, errno, _sys_errlist, and _sys_nerr.

Uwagi

Funkcja _getcwd pobiera pełną ścieżkę bieżącego katalogu roboczego dla domyślnego dysku i zapisuje ją w buffer.Argument liczby całkowitej maxlen określa maksymalną długość ścieżki.Wystąpi błąd, jeśli długość ścieżki (w tym końcowy znak null) przekracza maxlen*.* Argument buffer może być NULL; bufor o rozmiarze co najmniej maxlen (więcej tylko wtedy, gdy jest to niezbędne) jest przydzielany automatycznie za pomocą malloc, aby przechowywać ścieżkę.Ten bufor później może zostać zwolniony, wywołując free i przekazując go do wartości zwracanej _getcwd (wskaźnik do przydzielonego buforu).

_getcwd zwraca 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ę znakiem kreski ułamkowej odwróconej ( \ ).Jeśli bieżący katalog roboczy jest katalogiem innym niż katalog główny, ciąg kończy się nazwą katalogu, a nie znakiem kreski ułamkowej odwróconej.

_wgetcwd jest dwubajtową wersją _getcwd; argument buffer i zwracana przez _wgetcwd wartość są ciągami znaków dwubajtowych._wgetcwd i _getcwd zachowują się identycznie w innych przypadkach.

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

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tgetcwd

_getcwd

_getcwd

_wgetcwd

Wymagania

Procedura

Wymagany nagłówek

_getcwd

<direct.h>

_wgetcwd

<direct.h> lub <wchar.h>

Aby uzyskać więcej informacji na temat zgodności – zobacz: Zgodność.

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

Katalog systemu bieżących środowisk

Zobacz też

Informacje

Kontrola katalogu

_chdir, _wchdir

_mkdir, _wmkdir

_rmdir, _wrmdir