Provided by:
manpages-pl-dev_20060617-3_all 
NAZWA
glob, globfree - znalezienie cieek odpowiadajcych wzorcowi, zwolnienie
pami z glob()
SK/LADNIA
#include <glob.h>
int glob(const char *pattern, int flags,
int errfunc(const char *epath, int eerrno),
glob_t *pglob);
void globfree(glob_t *pglob);
OPIS
Funkcja glob() przeszukuje wszystkie cieki odpowiadajce wzorcowi
pattern, stosujc przy tym reguly takie, jakich uylaby powloka (zobacz
glob(7)). Nie jest dokonywane rozwinicie tyldy ani podstawienie
parametrow. Jeli s one potrzebne, to naley uy wordexp(3).
Funkcja globfree() zwalnia obszar pamici zaalokowany dynamicznie przez
wczeniejsze wywolanie funkcji glob().
W wyniku wywolania glob() tworzona jest struktura, na ktor wskazuje
pglob, bdcy typu glob_t zadeklarowanego w <glob.h> i zawierajcego
nastpujce elementy zdefiniowane przez POSIX.2 (mog te wystpowa
dodatkowe, ale jako rozszerzenie):
typedef struct
{
size_t gl_pathc; /* Liczba odpowiadajcych dotd cieek */
char **gl_pathv; /* Lista odpowiadajcych cieek. */
size_t gl_offs; /* Sloty do rezerwowania w `gl_pathv'. */
} glob_t;
Wyniki s zachowywane w dynamicznie przydzielanym obszarze pamici.
Parametr flags tworzy bitowe OR zera lub wicej nastpujcych symboli
stalych modyfikujcych zachowanie glob():
GLOB_ERR
oznacza, e naley powroci po bldzie odczytu (np. gdy katalog nie
ma praw odczytu),
GLOB_MARK
oznacza dodawanie ukonika do kadej cieki, ktora odpowiada
katalogowi,
GLOB_NOSORT
oznacza, e zwracane cieki nie maj by sortowane (domylnie s),
GLOB_DOOFFS
oznacza, e sloty pglob->gl_offs bd rezerwowane na pocztku listy
napisow w pglob->pathv,
GLOB_NOCHECK
oznacza, e jeli aden wzorzec nie odpowiada, zwracany jest
wzorzec oryginalny,
GLOB_APPEND
oznacza, e naley dokleja wyniki do wynikow poprzedniego
wywolania. Nie naley ustawia tej flagi przy pierwszym wywolaniu
glob().
GLOB_NOESCAPE
oznacza, e metaznaki nie mog by cytowane odwrotnymi ukonikami,
Parametr flags moe rownie zawiera nastpujce znaczniki, bdce
rozszerzeniami GNU nie definiowanymi przez POSIX.2:
GLOB_PERIOD
oznacza, e pocztkowa kropka moe by dopasowana metaznakiem,
GLOB_ALTDIRFUNC oznacza, e przy dostpie do systemy plikow zamiast
zwyklych funkcji bibliotecznych uywane s funkcje alternatywne
pglob->gl_closedir, pglob->gl_readdir, pglob->gl_opendir,
pglob->gl_lstati pglob->gl_stat,
GLOB_BRACE
oznacza, e rozwijane s wyraenia nawiasowe {a,b} w stylu csh(1),
GLOB_NOMAGIC
oznacza, e wzorzec jest zwracany, gdy nie zawiera metaznakow,
GLOB_TILDE
oznacza, e przeprowadzane rozwinicie tyldy, a
GLOB_ONLYDIR
oznacza, e dopasowywane s wylcznie katalogi.
Jeli errfunc nie jest rowne NULL, to w wypadku bldu bdzie ono wywolane
z argumentami epath, czyli wskanikiem do cieki, na ktorej co si nie
powiodlo i z eerrno, przechowujcym warto errno, zwrocon przez wywolanie
do opendir(), readdir() lub stat(). Jeli errfunc zwraca warto niezerow
lub jeli ustawiony jest znacznik GLOB_ERR, glob() zakoczy dzialanie po
wywolaniu funkcji errfunc.
Po pomylnym zakoczeniu, pglob->gl_pathc zawiera liczb pasujcych cieek,
a pglob->gl_pathv wskanik do listy trafionych cieek. Pierwszy wskanik
za ostatni ciek ma warto NULL.
Moliwe jest wywolywanie glob() wielokrotnie. W takim wypadku, naley w
nastpnych wywolaniach ustawi w flags znacznik GLOB_APPEND.
Jako rozszerzenie GNU, pglob->gl_flags jest ustawiane jako or podanych
znacznikow i GLOB_MAGCHAR, gdy wystpuj metaznaki.
WARTO ZWRACANA
Po pomylnym zakoczeniu glob() zwraca zero. Inne moliwe wartoci to:
GLOB_NOSPACE
przy braku pamici,
GLOB_ABORTED
przy bldzie odczytu i
GLOB_NOMATCH
gdy niczego nie dopasowano.
PRZYK/LADY
Jednym z przykladow uycia jest nastpujcy kod, emulujcy wpisanie
ls -l *.c ../*.c
w powloce.
glob_t globbuf;
globbuf.gl_offs = 2;
glob("*.c", GLOB_DOOFFS, NULL, &globbuf);
glob("../*.c", GLOB_DOOFFS | GLOB_APPEND, NULL, &globbuf);
globbuf.gl_pathv[0] = "ls";
globbuf.gl_pathv[1] = "-l";
execvp("ls", &globbuf.gl_pathv[0]);
ZGODNE Z
POSIX.2
B/LDY
Funkcja glob() moe zawie z powodu bldu wywolanych przez ni funkcji,
takich jak malloc() czy opendir(). Wywolania te zapisz kod bldu w
errno.
UWAGI
Elementy gl_pathc i gl_offs struktury s w glibc 2.1 zadeklarowane jako
size_t, jak powinno by zgodnie z POSIX.2, ale s zadeklarowane jako int
w libc4, libc5 i glibc 2.0.
ZOBACZ TAKE
ls(1), sh(1), stat(2), exec(3), malloc(3), opendir(3), readdir(3),
wordexp(3), glob(7)
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.