Provided by:
manpages-pl-dev_20060617-3_all 
NAZWA
getcwd, get_current_dir_name, getwd - odczytanie biecego katalogu
roboczego
SK/LADNIA
#include <unistd.h>
char *getcwd(char *buf, size_t size);
char *get_current_dir_name(void);
char *getwd(char *buf);
OPIS
Funkcja getcwd() kopiuje nazw bezwzgldnej cieki dostpu dla biecego
katalogu roboczego do tablicy wskazywanej przez buf, ktora to tablica
ma dlugo size.
Jeli nazwa biecej bezwzgldnej cieki dostpu wymaga bufora dluszego ni
size elementow, to zwracane jest NULL a errno jest ustawiane na ERANGE;
aplikacja powinna sprawdza, czy nie wystpil ten bld i przydziela wikszy
bufor, jeli jest to potrzebne.
Jeli buf jest rowne NULL, zachowanie getcwd() jest nieokrelone.
Jako rozszerzenie standardu POSIX.1, linuksowe (libc4, libc5, glibc)
getcwd() przydziela bufor dynamicznie korzystajc z malloc(), jeli buf
jest rowne NULL podczas wywolania. W tym przypadku przydzielony bufor
ma dlugo size, chyba e size jest rowne zero. Wowczas dla buf jest
przydzielane tyle, ile potrzeba. Jest moliwe (i naprawd zalecane)
zwalnianie otrzymanych w ten sposob buforow za pomoc free().
get_current_dir_name, ktore jest jedynie prototypem gdy _GNU_SOURCE
jest zdefiniowane, przydzieli za pomoc malloc(3) tablic dostatecznie
du, aby przechowa nazw biecego katalogu. Jeli zmienna rodowiskowa PWD
jest ustawiona, a jej warto prawidlowa, to zostanie zwrocona ta warto.
getwd, ktore jest jedynie prototypem gdy _BSD_SOURCE lub
_XOPEN_SOURCE_EXTENDED jest zdefiniowane, nie przydzieli adnej pamici
za pomoc malloc(3). Argument buf powinien by wskanikiem do tablicy o
dlugoci co najmniej PATH_MAX bajtow. getwd zwroci jedynie pierwsze
PATH_MAX bajtow nazwy biecej cieki dostpu. Naley zwroci uwag, e
PATH_MAX nie musi by stal okrelan podczas kompilacji; moe ona zalee od
systemu plikow, a nawet by nieograniczona. Ze wzgldu na przenono i
bezpieczestwo uywanie getwd nie jest zalecane.
WARTO ZWRACANA
NULL w przypadku bldu, przy jednoczesnym ustawieniu errno, a buf w
przypadku pomylnego zakoczenia. Zawarto tablicy wskazywanej przez buf w
przypadku bldu jest nieokrelona.
B/LDY
EACCES Brak praw do odczytu lub przeszukiwania skladnika nazwy pliku.
EFAULT buf wskazuje na niewlaciwy adres.
EINVAL Argument size jest zerowy, a buf nie jest wskanikiem NULL.
ENOENT Biecy katalog roboczy zostal skasowany.
ERANGE Argument size jest mniejszy od dlugoci nazwy katalogu roboczego.
Trzeba przydzieli wiksz tablic i sprobowa ponownie.
UWAGI
Pod Linuksem, funkcja getcwd() jest funkcj systemow (od 2.1.92). W
starszych systemach mogla ona odpytywa /proc/self/cwd. Gdy nie ma ani
funkcji systemowej, ani systemu plikow /proc, wywolywana jest
implementacja ogolna. Jedynie w takiej sytuacji wywolanie tych funkcji
moe w razie niepomylnego zakoczenia zwroci bld EACCES.
Funkcje te s czsto uywane do zapamitywania poloenia biecego katalogu
roboczego w celu poniejszego powrotu do niego. Gdy dostpnych jest
dostatecznie wiele deskryptorow plikow, otwarcie biecego katalogu (".")
i wywolanie fchdir(2), aby wroci jest zazwyczaj szybsz i bardziej
niezawodn alternatyw, zwlaszcza na platformach innych ni Linux.
ZGODNE Z
POSIX.1
ZOBACZ TAKE
chdir(2), fchdir(2), open(2), unlink(2), free(3), malloc(3)
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.