.\" -*- 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 "20 lipca 2023 r." "Linux man\-pages 6.05.01" .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 \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\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). .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\-Unsafe race:utent env sig:ALRM timer locale T} T{ .na .nh \fBglobfree\fP() T} Bezpieczeństwo wątkowe MT\-bezpieczne .TE .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\-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 .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 , Andrzej Krzysztofowicz , Robert Luberda i Michał Kułach . .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 .