glob

GLOB(3)                      Bibliotheksfunktionen                     GLOB(3)



BEZEICHNUNG
       glob, globfree - finde Dateinamen, die einem Muster genügen

BEZEICHNUNG
       #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 Dateien, die dem Muster pattern, gemäÃ
       den Regeln der Shell, genügen und gibt sie zurück.  (siehe auch
       glob(7)) Tilde-Erweiterungen und Variablensubstitutionen werden nicht
       durchgeführt.

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

       Die Ergebnisse eines glob()-Aufrufes werden in einer Struktur
       gespeichert, auf die pglob zeigt.  Sie ist vom Typ glob_t, der in
       <glob.h> wie folgt definiert ist.

          typedef struct
          {
                  int gl_pathc;       /* Anzahl der bisher gefundenen Dateinamen */
                  char **gl_pathv;    /* Liste der gefundenen Dateinamen */
                  int gl_offs;        /* Reservierte Einträge in `gl_pathv' */
                  int gl_flags;       /* Flags für glob() */
          } glob_t;

       Die Ergebnisse werden in der dynamisch alloziierten Datenstruktur
       gespeichert.

       Das Argument flags besteht aus einer ODER-Verknüpfungen der folgenden
       symbolischen Konstanten, die das Verhalten von glob() manipulieren:

       GLOB_ERR
              läÃt glob() bei einem Lesefehler (z.B. wenn ein Verzeichnis
              nicht gelesen werden kann) in das aufrufende Programm
              zurückkehren,

       GLOB_MARK
              fügt an jeden gefundenen Pfad einen Slash an, wenn dieser auf
              ein Verzeichnis zeigt,

       GLOB_NOSORT
              überspringt die Sortierung der Ergebnisse (normalerweise werden
              sie sortiert zurückgegeben),

       GLOB_DOOFS
              bedeutet, daà pglob->gl_offs Einträge am Anfang der Liste
              pglob->pathv reserviert werden,

       GLOB_NOCHECK
              bedeutet, daÃ, wenn keine Pfade dem Muster genügen, das Muster
              selbst zurückgegeben wird,

       GLOB_APPEND
              bedeutet, daà die Ergebnisse eines vorherigen Aufrufs von glob()
              angehängt werden sollen.  Dieses Flag sollte nicht beim ersten
              Aufruf gesetzt werden,

       GLOB_NOESCAPE
              bedeutet, daà Meta-Zeichen nicht mit Backslashes gequotet werden
              können und

       GLOB_PERIOD
              bedeutet, daà ein abschlieÃender Punkt für jedes Zeichen steht.

       Wenn errfunc nicht NULL ist, wird sie mit den Parametern epath, einem
       Zeiger auf den Pfad, bei dem der Fehler passierte, eerrno, dem Wert von
       errno, wie er von opendir(), readdir() bzw. stat().  gesetzt wurde,
       aufgerufen, wenn ein Fehler auftritt.  Wenn errfunc einen Wert ungleich
       null zurückgibt oder wenn GLOB_ERR gesetzt ist, springt 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 Pfade und pglob->gl_pathv ist ein Zeiger auf die Liste der
       gefundenen Pfade.  Der erste Zeiger nach dem letzten Pfad ist NULL.

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

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

       GLOB_NOSPACE,
              falls der Speicher knapp wurde,

       GLOB_ABEND,
              falls ein Lesefehler aufgetreten ist, und

       GLOB_NOMATCH,
              falls keine Pfade gefunden wurden.

BEISPIELE
       Ein passendes Beispiel ist folgender Code, der ein ls -l *.c ../*.c in
       der Shell simuliert.

          glob_t globbuf;

          globbuf.gl_offs = 2;
          glob("*.c", GLOB_DOOFS, NULL, &globbuf);
          glob("../*.c", GLOB_DOOFS | GLOB_APPEND, NULL, &globbuf);
          globbuf.gl_pathv[0] = "ls";
          globbuf.gl_pathv[1] = "-l";
          execvp("ls", &globbuf.gl_pathv[0]);

KONFORM ZU
       Vorgeschlagen in POSIX.2

FEHLER
       Die Funktion glob() kann fehlschlagen bei Fehlern der zugrundeliegenden
       Systemaufrufe wie malloc() oder opendir().  Diese speichern den
       Fehlercode in errno.

       POSIX.2 ist bisher noch kein anerkannter Standard, die Informationen in
       dieser Manual-Seite werden sich ändern.

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



GNU                              13. Mai 1996                          GLOB(3)