.\" -*- 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 "2 maja 2024 r." "Linux man\-pages 6.8" 
.SH NAZWA
glob, globfree \- znajduje ścieżki odpowiadające wzorcowi, zwalnia pamięć z
glob()
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <glob.h>\fP
.P
\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).
.P
Funkcja \fBglobfree\fP() zwalnia obszar pamięci zaalokowany dynamicznie przez
wcześniejsze wywołanie funkcji \fBglob\fP().
.P
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):
.P
.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
.P
Wyniki są zachowywane w dynamicznie przydzielanym obszarze pamięci.
.P
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
Nie pozwala na użycie znaku odwrotnego ukośnika (\[aq]\e\[aq]) jako znaku
cytowania. Domyślnie odwrotny ukośnik cytuje następujący po nim znak,
dostarczając mechanizmu wyłączania specjalnego znaczenia metaznaków.
.P
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
Przeprowadza ekspansję tyldy. Jeśli tylda (\[aq]\[ti]\[aq]) jest jedynym
znakiem we wzorcu lub zaraz po początkowym znaku tyldy występuje ukośnik
(\[aq]/\[aq]), to tylda jest zastępowana przez nazwę katalogu domowego
użytkownika wywołującego \fBglob\fP(). Jeśli po początkowej tyldzie występuje
nazwa użytkownika (np. "\[ti]andrea/bin"), to tylda i nazwa użytkownika są
zastępowane przez katalog domowy tego użytkownika. Jeśli nazwa użytkownika
jest niepoprawna lub katalog domowy nie może być określony, to żadne
zastępowanie nie jest przeprowadzane.
.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).
.P
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.
.P
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.
.P
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.
.P
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).
.TS
allbox;
lb lb lbx
l l l.
Interfejs	Atrybut	Wartość
T{
.na
.nh
\fBglob\fP()
T}	Bezpieczeństwo wątkowe	T{
.na
.nh
MT\-niebezpieczne race:utent env
sig:ALRM timer locale
T}
T{
.na
.nh
\fBglobfree\fP()
T}	Bezpieczeństwo wątkowe	MT\-bezpieczne
.TE
.P
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\-2008.
.SH HISTORIA
POSIX.1\-2001, 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 USTERKI
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
.P
.in +4n
.EX
ls \-l *.c ../*.c
.EE
.in
.P
w powłoce:
.P
.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 .
