| 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.
| “ | Do you laugh when the waiter drops a tray full of dishes? Unix weenies do. They're the first ones to laugh at hapless users, trying to figure out an error message that doesn't have anything to do with what they just typed. | ” |
| — The Unix Haters' handbook | ||