Provided by: manpages-de-dev_2.16-1_all bug

BEZEICHNUNG

       glob, globfree - findet Pfadnamen, die einem Muster genügen; gibt von glob() belegten Speicher frei

ÜBERSICHT

       #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);

BESCHREIBUNG

       Die  Funktion  glob()  sucht  alle  Pfadnamen,  die  nach den von der Shell verwendeten Regeln dem Muster
       pattern genügen und gibt sie zurück (siehe auch glob(7)). Tilde-Erweiterungen und Parametersubstitutionen
       werden nicht durchgeführt.

       Die Funktion globfree() gibt den dynamisch allozierten Speicher wieder frei, der noch von einem  früheren
       Aufruf von glob() belegt wird.

       Die Ergebnisse eines Aufrufes von glob() werden in der Struktur gespeichert, auf die pglob zeigt. Sie ist
       vom  Typ  glob_t (deklariert in <glob.h>) und enthält die folgenden von POSIX.2 definierten Elemente (als
       Erweiterung können zusätzliche Elemente vorhanden sein):

           typedef struct {
               size_t   gl_pathc;  /* Anzahl der bisher gefundenen Dateinamen */
               char   **gl_pathv;  /* Liste passender Pfadnamen */
               size_t   gl_offs;   /* in gl_pathv zu reservierendende "Slots" */
           } glob_t;

       Die Ergebnisse werden in dynamisch alloziertem Speicher abgelegt.

       Das Argument flags besteht aus einer bitweisen ODER-Verknüpfung von  null  oder  mehreren  der  folgenden
       symbolischen Konstanten, die das Verhalten von glob() bestimmen:

       GLOB_ERR
              Funktion  bei  Lesefehler  beenden (weil z. B. für ein Verzeichnis das Lesen nicht gestattet ist).
              Standardmäßig versucht glob(), trotz Fehlern weiterzumachen und alle Verzeichnisse zu  lesen,  die
              ihr möglich sind.

       GLOB_MARK
              An jeden gefundenen Pfad einen Schrägstrich an, wenn dieser einemVerzeichnis entspricht.

       GLOB_NOSORT
              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.

       GLOB_DOOFFS
              pglob->gl_offs Einträge am Anfang der String-Liste in pglob->pathv reservieren.  Die  reservierten
              Einträge enthalten Null-Zeiger.

       GLOB_NOCHECK
              Falls  kein  Muster  passt,  das  ursprüngliche  Muster  zurückgeben.  Standardmäßig  gibt  glob()
              GLOB_NOMATCH zurück, wenn es keine Fundstellen gibt.

       GLOB_APPEND
              Die Ergebnisse dieses Aufrufs an den Ergebnisvektor eines früheren Aufrufs  von  glob()  anhängen.
              Setzen Sie diesen Schalter nicht beim ersten Aufruf von glob().

       GLOB_NOESCAPE
              Den  linksseitigen Schrägstrich (»\«) 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.

       flags   kann   auch   einen   der  folgenden,  nicht  von  POSIX.2  definierten  Werte  enthalten.  Diese
       GNU-Erweiterungen sind:

       GLOB_PERIOD
              Den Abgleich eines führenden Punktes mit Metazeichen zulassen.  Standardmäßig  können  Metazeichen
              nicht mit einem führenden Punkte abgeglichen werden.

       GLOB_ALTDIRFUNC
              Die    alternativen    Funktionen    pglob->gl_closedir,   pglob->gl_readdir,   pglob->gl_opendir,
              pglob->gl_lstat und pglob->gl_stat anstelle der normalen Bibliotheksfunktionen für den Zugriff auf
              das Dateisystem verwenden.for file system access instead of the normal library functions.

       GLOB_BRACE
              Ersetzen  von  Klammerausdrücken  der  Form  {a,b}   im   csh(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 glob() mit den Zeichenketten »foo/«,  »foo/cat«,
              »foo/dog« und »bar«.

       GLOB_NOMAGIC
              Falls  das  Muster  keine  Metazeichen  enthält,  sollte es als das einzige Ergebnis zurückgegeben
              werden, auch wenn keine Datei mit diesem Namen existiert.

       GLOB_TILDE
              Tilden ersetzen. Falls eine Tilde (» «) das einzige Zeichen im Muster ist  oder  einer  Tilde  als
              erstes   Zeichen   sofort   ein   Schrägstrich   (»\[u00AB])  folgt,  wird  die  Tilde  durch  das
              Home-Verzeichnis des Aufrufenden ersetzt. Falls der  einleitenden  Tilde  ein  Benutzername  folgt
              (z. B.  ~/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.

       GLOB_TILDE_CHECK
              Dieser Schalter bewirkt ein Verhalten ähnlich dem von GLOB_TILDE. Der Unterschied  ist,  dass  bei
              einem  ungültigen  Benutzernamen  oder  bei  nicht ermittelbarem Home-Verzeichnis nicht das Muster
              selbst  als  Name  verwendet  wird,  sondern  glob()  GLOB_NOMATCH  zurückgibt,  um  einen  Fehler
              anzuzeigen.

       GLOB_ONLYDIR
              Dies  ist  ein Hinweis für glob(), 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.)

       Falls errfunc nicht NULL ist, wird sie mit den Parametern epath und eerrno aufgerufen,  wenn  ein  Fehler
       auftritt.  epath ist der Zeiger auf den Pfad, bei dem der Fehler passierte, eerrnoder Wert von errno, wie
       er von opendir()3, readdir(3) bzw.  stat(2)  gesetzt  wurde.  Falls  errfunc  einen  Wert  ungleich  null
       zurückgibt  oder  wenn  GLOB_ERR  gesetzt ist, kehrt glob() nach dem Aufruf von errfunc in das aufrufende
       Programm zurück.

       Nach  erfolgreicher  Ausführung  enthält  pglob->gl_pathc  die  Anzahl  der  gefundenen   Pfadnamen   und
       pglob->gl_pathv  ist  ein  Zeiger  auf  die Liste der gefundenen Pfadnamen. Die Liste der Zeiger wird mit
       einem Null-Zeiger abgeschlossen.

       Es ist möglich, glob() mehrfach aufzurufen. In diesem Fall muss GLOB_APPEND in  flags  beim  zweiten  und
       jedem weiteren Aufruf gesetzt werden.

       Als  eine  GNU-Erweiterung  wird  pglob->gl_flags  auf die angegebenen Schalter, logisch mit GLOB_MAGCHAR
       oder-verknüpft, gesetzt, falls Metazeichen gefunden wurden.

RÜCKGABEWERT

       Nach erfolgreicher Ausführung gibt glob() null zurück. Andere mögliche Werte sind:

       GLOB_NOSPACE
              Speicher aufgebraucht

       GLOB_ABORTED
              für einen Lesefehler und

       GLOB_NOMATCH
              falls keine Pfade gefunden wurden.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌───────────────┬───────────────────────┬──────────────────────────┐
       │ SchnittstelleAttributWert                     │
       ├───────────────┼───────────────────────┼──────────────────────────┤
       │ glob()        │ Multithread-Fähigkeit │ MT-Unsafe race:utent env │
       │               │                       │ sig:ALRM timer locale    │
       ├───────────────┼───────────────────────┼──────────────────────────┤
       │ globfree()    │ Multithread-Fähigkeit │ MT-Safe                  │
       └───────────────┴───────────────────────┴──────────────────────────┘

       In der obigen Tabelle bedeutet  utent  in  race:utent,  dass,  falls  eine  der  Funktionen  setutent(3),
       getutent(3)  oder  endutent(3)  in  verschiedenen  Threads  eines  Programms  parallel  verwandt  werden,
       konkurrierende Zugriffe auf Daten (»data races«) auftreten könnten. glob()  ruft  diese  Funktionen  auf,
       daher werden Benutzer mit »race:utent« daran erinnert.

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, POSIX.2.

ANMERKUNGEN

       Die Strukturelemente gl_pathc und gl_offs werden in der Glibc 2.1 als size_t deklariert, wie sie es gemäß
       POSIX.2 sein sollten. In Glibc 2.0 sind sie aber als int deklariert.

FEHLER

       Die  Funktion  glob()  kann  bei  Fehlern  der  zugrunde  liegenden  Funktionsaufrufe  wie malloc(3) oder
       opendir(3) fehlschlagen. Diese speichern ihren Fehlercode in errno.

BEISPIEL

       Ein Anwendungsbeispiel ist der folgende Code, der die Eingabe von

           ls -l *.c ../*.c

       in der Shell simuliert:

           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]);

SIEHE AUCH

       ls(1), sh(1), stat(2), exec(3), fnmatch(3), malloc(3), opendir(3), readdir(3), wordexp(3), glob(7)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  5.03  des  Projekts  Linux-man-pages.  Eine  Beschreibung  des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche  Übersetzung  dieser  Handbuchseite  wurde  von  Martin Schulze <joey@infodrom.org>, Martin
       Eberhard Schauer <Martin.E.Schauer@gmx.de>,  Mario  Blättermann  <mario.blaettermann@gmail.com>  und  Dr.
       Tobias Quathamer <toddy@debian.org> erstellt.

       Diese  Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser  Handbuchseite  finden,  schicken  Sie  bitte  eine  E-Mail  an
       <debian-l10n-german@lists.debian.org>.

GNU                                               6. März 2019                                           GLOB(3)