NAZWA¶
getcwd, get_current_dir_name, getwd - odczytanie bieżącego katalogu
  roboczego
SKŁADNIA¶
#include <unistd.h>
 
char *getcwd(char *buf, size_t size);
char *get_current_dir_name(void);
char *getwd(char *buf);
OPIS¶
 Uwaga! To tłumaczenie może być nieaktualne!
Funkcja 
getcwd() kopiuje nazwę bezwzględnej ścieżki
  dostępu dla bieżącego katalogu roboczego do tablicy wskazywanej
  przez 
buf, która to tablica ma długość 
size.
Jeśli nazwa bieżącej bezwzględnej ścieżki
  dostępu wymaga bufora dłuższego niż 
size
  elementów, to zwracane jest 
NULL a 
errno jest ustawiane na
  
ERANGE; aplikacja powinna sprawdzać, czy nie wystąpił
  ten błąd i przydzielać większy bufor, jeśli jest to
  potrzebne.
Jeśli 
buf jest równe NULL, zachowanie 
getcwd() jest
  nieokreślone.
Jako rozszerzenie standardu POSIX.1, linuksowe (libc4, libc5, glibc)
  
getcwd() przydziela bufor dynamicznie korzystając z
  
malloc(), jeśli 
buf jest równe 
NULL podczas
  wywołania. W tym przypadku przydzielony bufor ma długość
  
size, chyba że 
size jest równe zero. Wówczas dla
  
buf jest przydzielane tyle, ile potrzeba. Jest możliwe (i
  naprawdę zalecane) zwalnianie otrzymanych w ten sposób buforów
  za pomocą 
free().
 
get_current_dir_name, które jest jedynie prototypem gdy
  
_GNU_SOURCE jest zdefiniowane, przydzieli za pomocą
  
malloc(3) tablicę dostatecznie dużą, aby przechować
  nazwę bieżącego katalogu. Jeśli zmienna środowiskowa
  
PWD jest ustawiona, a jej wartość prawidłowa, to
  zostanie zwrócona ta wartość.
 
getwd, które jest jedynie prototypem gdy 
_BSD_SOURCE lub
  
_XOPEN_SOURCE_EXTENDED jest zdefiniowane, nie przydzieli żadnej
  pamięci za pomocą 
malloc(3). Argument 
buf powinien
  być wskaźnikiem do tablicy o długości co najmniej
  
PATH_MAX bajtów. 
getwd zwróci jedynie pierwsze
  
PATH_MAX bajtów nazwy bieżącej ścieżki
  dostępu. Należy zwrócić uwagę, że
  
PATH_MAX nie musi być stałą określaną podczas
  kompilacji; może ona zależeć od systemu plików, a nawet
  być nieograniczona. Ze względu na przenośność i
  bezpieczeństwo używanie 
getwd nie jest zalecane.
WARTOŚĆ ZWRACANA¶
NULL w przypadku błędu, przy jednoczesnym ustawieniu
  
errno, a 
buf w przypadku pomyślnego zakończenia.
  Zawartość tablicy wskazywanej przez 
buf w przypadku
  błędu jest nieokreślona.
BŁĘDY¶
  - EACCES
 
  - Brak praw do odczytu lub przeszukiwania składnika
      nazwy pliku.
 
  - EFAULT
 
  - buf wskazuje na niewłaściwy adres.
 
  - EINVAL
 
  - Argument size jest zerowy, a buf nie jest
      wskaźnikiem NULL.
 
  - ENOENT
 
  - Bieżący katalog roboczy został
    skasowany.
 
  - ERANGE
 
  - Argument size jest mniejszy od długości
      nazwy katalogu roboczego. Trzeba przydzielić większą
      tablicę i spróbować ponownie.
 
UWAGI¶
Pod Linuksem, funkcja 
getcwd() jest funkcją systemową (od
  2.1.92). W starszych systemach mogła ona odpytywać
  
/proc/self/cwd. Gdy nie ma ani funkcji systemowej, ani systemu
  plików /proc, wywoływana jest implementacja ogólna. Jedynie w
  takiej sytuacji wywołanie tych funkcji może w razie
  niepomyślnego zakończenia zwrócić błąd
  
EACCES.
Funkcje te są często używane do zapamiętywania
  położenia bieżącego katalogu roboczego w celu
  późniejszego powrotu do niego. Gdy dostępnych jest dostatecznie
  wiele deskryptorów plików, otwarcie bieżącego katalogu
  (".") i wywołanie 
fchdir(2), aby wrócić jest
  zazwyczaj szybszą i bardziej niezawodną alternatywą,
  zwłaszcza na platformach innych niż Linux.
ZGODNE Z¶
POSIX.1
ZOBACZ TAKŻE¶
chdir(2), 
fchdir(2), 
open(2), 
unlink(2),
  
free(3), 
malloc(3)
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
  Tłumaczenia Manuali i 
może nie być aktualne. W razie
  zauważenia różnic między powyższym opisem a
  rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
  zapoznanie się z oryginalną (angielską) wersją strony
  podręcznika za pomocą polecenia:
  
  - man --locale=C 3 getcwd
 
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
  znaleźć pod adresem
  
http://sourceforge.net/projects/manpages-pl/.