Provided by: manpages-de-dev_0.5-4.1ubuntu1_all bug

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ässt  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,  dass  pglob->gl_offs  Einträge  am  Anfang  der Liste
              pglob->pathv reserviert werden,

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

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

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

       GLOB_PERIOD
              bedeutet, dass 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  muss
       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).