glob()GLOB_APPENDgl_offsgl_pathvgl_pathcglob()ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°
glob()glob()Π’Π°Π±Π»ΠΈΡΠ° 12.4. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅
glob()| Π€Π»Π°Π³ | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ |
|---|---|
GLOB_ABORTED | ΠΡΠΎΡΠΌΠΎΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ°Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΡΠ» ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ GLOB_ERR(*errfunc)() |
GLOB_NOMATCH | ΠΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π»ΠΎ patternGLOB_NOCHECK |
GLOB_NOSPACE | ΠΡΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ |
globfree()glob()ch12-glob.Ρglob()1Β /* ch12-glob.c --- Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ glob(). */23Β #include <stdio.h>4Β #include <errno.h>5Β #include <glob.h>67Β char *myname;89Β /* globerr --- Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π΄Π»Ρ glob() */1011 int globerr(const char *path, int eerrno)12 {13Β fprintf(stderr, "%s: %s: %s\n", myname, path, strerror(eerrno));14Β return 0; /* let glob() keep going */15 }1617 /* main() --- ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ */1819 int main(int argc, char **argv)20 {21Β int i;22Β int flags = 0;23Β glob_t results;24Β int ret;2526Β if (argc == 1) {27Β Β fprintf(stderr, "usage: %s wildcard ...\n", argv[0]);28Β Β exit(1);29Β }3031Β myname = argv[0]; /* Π΄Π»Ρ globerr() */3233 Β for (i = 1; i < argc; i++) {34Β Β flags |= (i > 1 ? GLOB_APPEND : 0);35Β Β ret = glob(argv[i], flags, globerr, &results);36Β Β if (ret != 0) {37Β Β Β fprintf(stderr, "%s: problem with %s (%s),38Β Β Β Β stopping early\n", myname, argv[i],39Β Β Β Β /* ΠΎΠΏΠ°ΡΠ½ΠΎ: */ (ret == GLOB_ABORTED ? "filesystem problem" :40Β Β Β Β ret == GLOB_NOMATCH ? "no match of pattern" :41Β Β Β Β ret == GLOB_NOSPACE ? "no dynamic memory" :42Β Β Β Β "unknown problem"));43Β Β Β break;44Β Β }45Β }4647Β for (i = 0; i < results.gl_pathc; i++)48Β Β printf("%s\n", results.gl_pathv[i]);4950Β globfree(&results);51Β return 0;52 }Π‘ΡΡΠΎΠΊΠ° 7 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ
mynamegloberr()Π‘ΡΡΠΎΠΊΠΈ 33β45 ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½ΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π² ΡΠΈΠΊΠ»Π΅ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, Π²ΡΠ·ΡΠ²Π°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ
glob()Π‘ΡΡΠΎΠΊΠΈ 39β41 Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌΠΈ; Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ ΡΠ΅Π»ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π² ΡΡΡΠΎΠΊΠΈ; ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ°Π΄ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΌΠ΅ΡΡΠ°. ΠΠΎΠ΄ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ½ΠΎΡΠ½ΡΠΌ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΎ ΡΠ°Π±ΠΎΡΠ΅, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ (ΠΎΡΠΊΡΡΡΠΈΠ΅ ΠΈ ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ°, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ°), ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠ°ΡΠ°ΡΡ ΡΠ΅Π½ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Π²Π°Ρ Π΄Π΅Π»Π°Π΅Ρ
glob()$ <b>ch12-glob '/usr/lib/x*.so' '../../*.texi'</b>/usr/lib/xchat-autob5.so/usr/lib/xchat-autogb.so../../00-preface.texi../../01-intro.texi../../02-cmdline.texi