Hauptindex | Abschnitt 3 | English | 日本語 | Optionen |
#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);
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. | |
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 .
GLOB_NOSPACE, | |
falls der Speicher knapp wurde, | |
GLOB_ABEND, | |
falls ein Lesefehler aufgetreten ist, und | |
GLOB_NOMATCH, | |
falls keine Pfade gefunden wurden. | |
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]);
POSIX.2 ist bisher noch kein anerkannter Standard, die Informationen in dieser Manual-Seite werden sich ändern.
13. Mai 1996 | GLOB (3) | GNU |
Hauptindex | Abschnitt 3 | English | 日本語 | Optionen |
Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.
“ | A computer would deserve to be called intelligent if it could deceive a human into believing that it was human. | ” |
— Alan Turing |