.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" Modified Wed Jul 28 11:12:17 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified Mon May 13 23:08:50 1996 by Martin Schulze (joey@linux.de)
.\" Modified 11 May 1998 by Joseph S. Myers (jsm28@cam.ac.uk)
.\" Modified 990912 by aeb
.\" 2007-10-10 mtk
.\"     Added description of GLOB_TILDE_NOMATCH
.\"     Expanded the description of various flags
.\"     Various wording fixes.
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH glob 3 "5 lutego 2023 r." "Linux man\-pages 6.03" 
.SH NAZWA
glob, globfree \- znalezienie ścieżek odpowiadających wzorcowi, zwolnienie
pamięć z glob()
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <glob.h>\fP
.PP
\fBint glob(const char *restrict \fP\fIpattern\fP\fB, int \fP\fIflags\fP\fB,\fP
\fB         int (*\fP\fIerrfunc\fP\fB)(const char *\fP\fIepath\fP\fB, int \fP\fIeerrno\fP\fB),\fP
\fB         glob_t *restrict \fP\fIpglob\fP\fB);\fP
\fBvoid globfree(glob_t *\fP\fIpglob\fP\fB);\fP
.fi
.SH OPIS
Funkcja \fBglob\fP() przeszukuje wszystkie ścieżki odpowiadające wzorcowi
\fIpattern\fP, stosując przy tym reguły takie, jakich użyłaby powłoka (zobacz
\fBglob\fP(7)). Nie jest dokonywane rozwinięcie tyldy ani podstawienie
parametrów. Jeśli są one potrzebne, to należy użyć \fBwordexp\fP(3).
.PP
Funkcja \fBglobfree\fP() zwalnia obszar pamięci zaalokowany dynamicznie przez
wcześniejsze wywołanie funkcji \fBglob\fP().
.PP
W wyniku wywołania \fBglob\fP() tworzona jest struktura, na którą wskazuje
\fIpglob\fP. Struktura jest typu \fBglob_t\fP (deklarowany w \fI<glob.h>\fP)
i zawiera następujące elementy zdefiniowane przez POSIX.2 (mogą też
występować dodatkowe jako rozszerzenie):
.PP
.in +4n
.EX
typedef struct {
    size_t   gl_pathc;    /* Liczba odpowiadających dotąd ścieżek.  */
    char   **gl_pathv;    /* Lista odpowiadających ścieżek  */
    size_t   gl_offs;     /*  Sloty do rezerwowania w \fIgl_pathv\fP.  */
} glob_t;
.EE
.in
.PP
Wyniki są zachowywane w dynamicznie przydzielanym obszarze pamięci.
.PP
Argument \fIflags\fP jest bitowym OR\-em zera lub więcej następujących symboli
stałych modyfikujących zachowanie \fBglob\fP():
.TP 
\fBGLOB_ERR\fP
Powraca po napotkaniu błędu odczytu (na przykład, jeśli nie ma praw do
odczytu katalogu). Domyślnie \fBglob\fP() kontynuuje działanie mimo błędów,
odczytując wszystkie katalogi, do których ma uprawnienia.
.TP 
\fBGLOB_MARK\fP
Dodaje ukośnik do każdej ścieżki, która odpowiada katalogowi.
.TP 
\fBGLOB_NOSORT\fP
Nie sortuje zwracanych nazw ścieżek. Jedynym powodem użycia tej opcji może
być zaoszczędzenie czasu przetwarzania. Domyślnie zwracane nazwy ścieżek są
sortowane.
.TP 
\fBGLOB_DOOFFS\fP
Rezerwuje sloty \fIpglob\->gl_offs\fP na początku listy napisów w
\fIpglob\->pathv\fP. Zarezerwowane sloty mogą zawierać wskaźniki null.
.TP 
\fBGLOB_NOCHECK\fP
Jeśli żaden wzorzec nie zostanie dopasowany, to zwracany jest oryginalny
wzorzec. Domyślnie \fBglob\fP() w razie braku dopasowań zwraca \fBGLOB_NOMATCH\fP.
.TP 
\fBGLOB_APPEND\fP
Doklejać wyniki bieżącego wywołania do listy wyników poprzedniego
wywołania. Nie należy ustawiać tej flagi przy pierwszym wywołaniu \fBglob\fP().
.TP 
\fBGLOB_NOESCAPE\fP
Don't allow backslash (\[aq]\e\[aq]) to be used as an escape character.
Normally, a backslash can be used to quote the following character,
providing a mechanism to turn off the special meaning metacharacters.
.PP
Parametr \fIflags\fP może również zawierać następujące znaczniki, będące
rozszerzeniami GNU niedefiniowanymi przez POSIX.2:
.TP 
\fBGLOB_PERIOD\fP
Pozwala na to, by początkowa kropka była dopasowywana przez
metaznaki. Domyślnie metaznaki nie są dopasowywane do początkowej kropki.
.TP 
\fBGLOB_ALTDIRFUNC\fP
Zamiast zwykłych funkcji bibliotecznych używa alternatywnych funkcji
\fIpglob\->gl_closedir\fP, \fIpglob\->gl_readdir\fP,
\fIpglob\->gl_opendir\fP, \fIpglob\->gl_lstat\fP oraz \fIpglob\->gl_stat\fP
do dostępu do systemu plików.
.TP 
\fBGLOB_BRACE\fP
Rozwija wyrażenia nawiasowe stylu \fBcsh\fP(1) w formacie \fB{a,b}\fP. Wyrażenia
nawiasowe mogą być zagnieżdżane. Dlatego na przykład podanie wzoraca
"{foo/{,cat,dog},bar}" zwróci takie same wyniki jak czterokrotne wywołanie
\fBglob\fP() z następującymi argumentami: "foo/", "foo/cat", "foo/dog" oraz
"bar".
.TP 
\fBGLOB_NOMAGIC\fP
Jeśli wzorzec nie zawiera metaznaków, to powinien być zwrócony jako jedyne
pasujące słowo nawet wtedy, gdy nie ma plików o takiej nazwie.
.TP 
\fBGLOB_TILDE\fP
Carry out tilde expansion.  If a tilde (\[aq]\[ti]\[aq]) is the only
character in the pattern, or an initial tilde is followed immediately by a
slash (\[aq]/\[aq]), then the home directory of the caller is substituted
for the tilde.  If an initial tilde is followed by a username (e.g.,
"\[ti]andrea/bin"), then the tilde and username are substituted by the home
directory of that user.  If the username is invalid, or the home directory
cannot be determined, then no substitution is performed.
.TP 
\fBGLOB_TILDE_CHECK\fP
Zachowuje się podobnie do \fBGLOB_TILDE\fP, z tą różnicą że jeśli nazwa
użytkownika jest niepoprawna lub jeśli nie można określić katalogu domowego
użytkownika, to \fBglob\fP() zamiast używać wzorca jako nazwy zwróci
\fBGLOB_NOMATCH\fP, wskazując, że wystąpił błąd.
.TP 
\fBGLOB_ONLYDIR\fP
Jest to \fIwskazówka\fP dla funkcji \fBglob\fP(), mówiąca, że funkcja wywołująca
jest zainteresowana tylko katalogami pasującymi do wzorca. Jeśli
implementacja może w łatwy sposób określić informację o typie pliku, to
pliki niebędące katalogami nie są zwracane. Jednakże funkcja wywołująca musi
sprawdzić, że zwrócone pliki są katalogami. (Celem tej flagi jest
poprawienie wydajności w przypadku, gdy funkcja wywołująca jest
zainteresowana tylko katalogami).
.PP
Jeśli \fIerrfunc\fP nie jest równe NULL, to w wypadku błędu będzie ono wywołane
z argumentami \fIepath\fP, czyli wskaźnikiem do ścieżki, na której coś się nie
powiodło, i z \fIeerrno\fP, przechowującym wartość \fIerrno\fP, zwróconą przez
wywołanie do \fBopendir\fP(3), \fBreaddir\fP(3) lub \fBstat\fP(2). Jeśli \fIerrfunc\fP
zwraca wartość niezerową lub jeśli ustawiony jest znacznik \fBGLOB_ERR\fP, to
\fBglob\fP() zakończy działanie po wywołaniu funkcji \fIerrfunc\fP.
.PP
Po pomyślnym zakończeniu, \fIpglob\->gl_pathc\fP zawiera liczbę pasujących
ścieżek, a \fIpglob\->gl_pathv\fP wskaźnik do listy wskaźników do
dopasowanych ścieżek. Lista ta jest zakończona wskaźnikiem null.
.PP
Możliwe jest wywoływanie \fBglob\fP() wielokrotnie. W takim wypadku należy w
następnych wywołaniach ustawić w \fIflags\fP znacznik \fBGLOB_APPEND\fP.
.PP
Jako rozszerzenie GNU, \fIpglob\->gl_flags\fP jest ustawiane jako \fBor\fP
podanych znaczników i \fBGLOB_MAGCHAR\fP, gdy występują metaznaki.
.SH "WARTOŚĆ ZWRACANA"
Po pomyślnym zakończeniu \fBglob\fP() zwraca zero. Inne możliwe wartości to:
.TP 
\fBGLOB_NOSPACE\fP
przy braku pamięci,
.TP 
\fBGLOB_ABORTED\fP
przy błędzie odczytu i
.TP 
\fBGLOB_NOMATCH\fP
gdy niczego nie dopasowano.
.SH ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku
\fBattributes\fP(7).
.ad l
.nh
.TS
allbox;
lb lb lbx
l l l.
Interfejs	Atrybut	Wartość
T{
\fBglob\fP()
T}	Bezpieczeństwo wątkowe	T{
MT\-Unsafe race:utent env
sig:ALRM timer locale
T}
T{
\fBglobfree\fP()
T}	Bezpieczeństwo wątkowe	MT\-Safe
.TE
.hy
.ad
.sp 1
W powyższej tabeli \fIutent\fP w \fIrace:utent\fP oznacza, że jeśli któraś z
funkcji \fBsetutent\fP(3), \fBgetutent\fP(3) lub \fBendutent\fP(3) jest używana
równolegle w różnych wątkach programu, może nastąpić sytuacja wyścigu
danych. Ponieważ \fBglob\fP() wywołuje te funkcje, stąd dla przypomnienia
użytkownikom używamy race:utent.
.SH STANDARDY
POSIX.1\-2001, POSIX.1\-2008, POSIX.2.
.SH UWAGI
Elementy \fIgl_pathc\fP i \fIgl_offs\fP struktury są w glibc 2.1 zadeklarowane
jako \fIsize_t\fP, jak powinno być zgodnie z POSIX.2, ale są zadeklarowane jako
\fIint\fP w glibc 2.0.
.SH BŁĘDY
Funkcja \fBglob\fP() może zawieść z powodu błędu wywołanych przez nią funkcji,
takich jak \fBmalloc\fP(3) czy \fBopendir\fP(3). Wywołania te zapiszą kod błędu w
\fIerrno\fP.
.SH PRZYKŁADY
Jednym z przykładów użycia jest następujący kod, emulujący wpisanie
.PP
.in +4n
.EX
ls \-l *.c ../*.c
.EE
.in
.PP
w powłoce:
.PP
.in +4n
.EX
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]);
.EE
.in
.SH "ZOBACZ TAKŻE"
\fBls\fP(1), \fBsh\fP(1), \fBstat\fP(2), \fBexec\fP(3), \fBfnmatch\fP(3), \fBmalloc\fP(3),
\fBopendir\fP(3), \fBreaddir\fP(3), \fBwordexp\fP(3), \fBglob\fP(7)
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Przemek Borys <pborys@dione.ids.pl>,
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>,
Robert Luberda <robert@debian.org>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
