.\" -*- 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. Juli 2023" "Linux man\-pages 6.05.01" .SH BEZEICHNUNG glob, globfree \- findet Pfadnamen, die einem Muster genügen; gibt von glob() belegten Speicher frei .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .PP \fBint glob(const char *restrict \fP\fIMuster\fP\fB, int \fP\fISchalter\fP\fB,\fP \fB int (*\fP\fIFehlerfunk\fP\fB)(const char *\fP\fIfPfad\fP\fB, int \fP\fIFehlernum\fP\fB),\fP \fB glob_t *restrict \fP\fIpglob\fP\fB);\fP \fBvoid globfree(glob_t *\fP\fIpglob\fP\fB);\fP .fi .SH BESCHREIBUNG Die Funktion \fBglob\fP() sucht alle Pfadnamen, die nach den von der Shell verwendeten Regeln dem \fIMuster\fP genügen und gibt sie zurück (siehe auch \fBglob\fP(7)). Tilde\-Erweiterungen und Parametersubstitutionen werden nicht durchgeführt, falls sie das möchten, müssen Sie \fBwordexp\fP(3) verwenden. .PP Die Funktion \fBglobfree\fP() gibt den dynamisch allozierten Speicher wieder frei, der noch von einem früheren Aufruf von \fBglob\fP() belegt wird. .PP Die Ergebnisse eines Aufrufes von \fBglob\fP() werden in der Struktur gespeichert, auf die \fIpglob\fP zeigt. Sie ist vom Typ \fBglob_t\fP (deklariert in \fB\fP) und enthält die folgenden von POSIX.2 definierten Elemente (als Erweiterung können zusätzliche Elemente vorhanden sein): .PP .in +4n .EX typedef struct { size_t gl_pathc; /* Anzahl der bisher gefundenen Dateinamen */ char **gl_pathv; /* Liste passender Pfadnamen */ size_t gl_offs; /* in \fIgl_pathv\fP zu reservierendende "Slots" */ } glob_t; .EE .in .PP Die Ergebnisse werden in dynamisch alloziertem Speicher abgelegt. .PP Das Argument \fISchalter\fP besteht aus einer bitweisen ODER\-Verknüpfung von null oder mehreren der folgenden symbolischen Konstanten, die das Verhalten von \fBglob\fP() bestimmen: .TP \fBGLOB_ERR\fP Funktion bei Lesefehler beenden (weil z.\ B. für ein Verzeichnis das Lesen nicht gestattet ist). Standardmäßig versucht \fBglob\fP(), trotz Fehlern weiterzumachen und alle Verzeichnisse zu lesen, die ihr möglich sind. .TP \fBGLOB_MARK\fP An jeden gefundenen Pfad einen Schrägstrich an, wenn dieser einemVerzeichnis entspricht. .TP \fBGLOB_NOSORT\fP Die zurückgegebenen Pfadnamen nicht sortieren. Der einzige Grund dafür ist das Einsparen von Zeit für die Verarbeitung. Standardmäßig werden die zurückgegebenen Pfadnamen sortiert. .TP \fBGLOB_DOOFFS\fP \fIpglob\->gl_offs\fP Einträge am Anfang der String\-Liste in \fIpglob\->pathv\fP reservieren. Die reservierten Einträge enthalten Nullzeiger. .TP \fBGLOB_NOCHECK\fP Falls kein Muster passt, das ursprüngliche Muster zurückgeben. Standardmäßig gibt \fBglob\fP() \fBGLOB_NOMATCH\fP zurück, wenn es keine Fundstellen gibt. .TP \fBGLOB_APPEND\fP Die Ergebnisse dieses Aufrufs an den Ergebnisvektor eines früheren Aufrufs von \fBglob\fP() anhängen. Setzen Sie diesen Schalter nicht beim ersten Aufruf von \fBglob\fP(). .TP \fBGLOB_NOESCAPE\fP Den linksseitigen Schrägstrich (»\e«) nicht als Escape\-Zeichen zulassen. Normalerweise wird dieses Zeichen verwendet, um die folgenden Zeichen zu maskieren und somit einen Mechanismus zum Ausschalten der besonderen Bedeutung von Metazeichen zu bieten. .PP \fISchalter\fP kann auch einen der folgenden, nicht von POSIX.2 definierten Werte enthalten. Diese GNU\-Erweiterungen sind: .TP \fBGLOB_PERIOD\fP Den Abgleich eines führenden Punktes mit Metazeichen zulassen. Standardmäßig können Metazeichen nicht mit einem führenden Punkte abgeglichen werden. .TP \fBGLOB_ALTDIRFUNC\fP Die alternativen Funktionen \fIpglob\->gl_closedir\fP, \fIpglob\->gl_readdir\fP, \fIpglob\->gl_opendir\fP, \fIpglob\->gl_lstat\fP und \fIpglob\->gl_stat\fP anstelle der normalen Bibliotheksfunktionen für den Zugriff auf das Dateisystem verwenden.for file system access instead of the normal library functions. .TP \fBGLOB_BRACE\fP Ersetzen von Klammerausdrücken der Form \fB{a,b}\fP im \fBcsh\fP(1)\-Stil. Klammerausdrücke können verschachtelt werden. So liefert zum Beispiel die Angabe des Musters »{foo/{,cat, dog}, bar}« die gleichen Ergebnisse wie vier separate Aufrufe von \fBglob\fP() mit den Zeichenketten »foo/«, »foo/cat«, »foo/dog« und »bar«. .TP \fBGLOB_NOMAGIC\fP Falls das Muster keine Metazeichen enthält, sollte es als das einzige Ergebnis zurückgegeben werden, auch wenn keine Datei mit diesem Namen existiert. .TP \fBGLOB_TILDE\fP Tilden ersetzen. Falls eine Tilde (»\[ti]«) das einzige Zeichen im Muster ist oder einer Tilde als erstes Zeichen sofort ein Schrägstrich (»\«) folgt, wird die Tilde durch das Home\-Verzeichnis des Aufrufenden ersetzt. Falls der einleitenden Tilde ein Benutzername folgt (z.\ B. »\[ti]andrea/bin«), werden Tilde und Benutzername durch das Home\-Verzeichnis des Benutzers ersetzt. Falls der Benutzername ungültig ist oder das Home\-Verzeichnis nicht bestimmt werden kann, wird keine Substitution durchgeführt. .TP \fBGLOB_TILDE_CHECK\fP Dieser Schalter bewirkt ein Verhalten ähnlich dem von \fBGLOB_TILDE\fP. Der Unterschied ist, dass bei einem ungültigen Benutzernamen oder bei nicht ermittelbarem Home\-Verzeichnis nicht das Muster selbst als Name verwendet wird, sondern \fBglob\fP() \fBGLOB_NOMATCH\fP zurückgibt, um einen Fehler anzuzeigen. .TP \fBGLOB_ONLYDIR\fP Dies ist ein \fIHinweis\fP für \fBglob\fP(), dass der Aufrufende nur an Verzeichnissen interessiert ist, die dem Muster entsprechen. Falls die Implementierung Informationen zum Dateityp leicht ermitteln kann, werden Dateien, die keine Verzeichnisse sind, nicht an den Aufrufenden zurückgegeben. Allerdings muss der Aufrufende dennoch prüfen, ob die zurückgegebenen Dateien Verzeichnisse sind. (Der Zweck dieses Schalters ist lediglich eine Leistungsoptimierung, wenn der Aufrufende nur an Verzeichnissen interessiert ist.) .PP Falls \fIFehlerfunk\fP nicht NULL ist, wird sie mit den Parametern \fIfPfad\fP und \fIFehlernum\fP aufgerufen, wenn ein Fehler auftritt. \fIfPfad\fP ist der Zeiger auf den Pfad, bei dem der Fehler passierte, \fIFehlernum\fP der Wert von \fIerrno\fP, wie er von \fBopendir\fP(3), \fBreaddir\fP(3) bzw. \fBstat\fP(2) gesetzt wurde. Falls \fIFehlerfunk\fP einen Wert ungleich null zurückgibt oder wenn \fBGLOB_ERR\fP gesetzt ist, kehrt \fBglob\fP() nach dem Aufruf von \fIFehlerfunk\fP in das aufrufende Programm zurück. .PP Nach erfolgreicher Ausführung enthält \fIpglob\->gl_pathc\fP die Anzahl der gefundenen Pfadnamen und \fIpglob\->gl_pathv\fP ist ein Zeiger auf die Liste der gefundenen Pfadnamen. Die Liste der Zeiger wird mit einem Nullzeiger abgeschlossen. .PP Es ist möglich, \fBglob\fP() mehrfach aufzurufen. In diesem Fall muss \fBGLOB_APPEND\fP in \fISchalter\fP beim zweiten und jedem weiteren Aufruf gesetzt werden. .PP Als eine GNU\-Erweiterung wird \fIpglob\->gl_flags\fP auf die angegebenen Schalter, logisch mit \fBGLOB_MAGCHAR\fP \fBoder\fP\-verknüpft, gesetzt, falls Metazeichen gefunden wurden. .SH RÜCKGABEWERT Nach erfolgreicher Ausführung gibt \fBglob\fP() null zurück. Andere mögliche Werte sind: .TP \fBGLOB_NOSPACE\fP Speicher aufgebraucht .TP \fBGLOB_ABORTED\fP für einen Lesefehler und .TP \fBGLOB_NOMATCH\fP falls keine Pfade gefunden wurden. .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lb lb lbx l l l. Schnittstelle Attribut Wert T{ .na .nh \fBglob\fP() T} Multithread\-Fähigkeit T{ .na .nh MT\-Unsicher race:utent env sig:ALRM timer locale T} T{ .na .nh \fBglobfree\fP() T} Multithread\-Fähigkeit MT\-Sicher .TE .sp 1 In der obigen Tabelle bedeutet \fIutent\fP in \fIrace:utent\fP, dass, falls eine der Funktionen \fBsetutent\fP(3), \fBgetutent\fP(3) oder \fBendutent\fP(3) in verschiedenen Threads eines Programms parallel verwandt werden, konkurrierende Zugriffe auf Daten (»data races«) auftreten könnten. \fBglob\fP() ruft diese Funktionen auf, daher werden Benutzer mit »race:utent« daran erinnert. .SH STANDARDS POSIX.1\-2008. .SH GESCHICHTE POSIX.1\-2001, POSIX.2. .SH ANMERKUNGEN Die Strukturelemente \fIgl_pathc\fP und \fIgl_offs\fP werden in der Glibc 2.1 als \fIsize_t\fP deklariert, wie sie es gemäß POSIX.2 sein sollten. In Glibc 2.0 sind sie aber als \fIint\fP deklariert. .SH FEHLER Die Funktion \fBglob\fP() kann bei Fehlern der zugrunde liegenden Funktionsaufrufe wie \fBmalloc\fP(3) oder \fBopendir\fP(3) fehlschlagen. Diese speichern ihren Fehlercode in \fIerrno\fP. .SH BEISPIELE Ein Anwendungsbeispiel ist der folgende Code, der die Eingabe von .PP .in +4n .EX ls \-l *.c ../*.c .EE .in .PP in der Shell simuliert: .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 "SIEHE AUCH" \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 ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze , Martin Eberhard Schauer , Mario Blättermann und Dr. Tobias Quathamer erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .