Provided by: manpages-pl-dev_20060617-3_all bug

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.