11 static int (*real_glob)(const char *pattern, int flags,
12 int (*errfunc) (const char *epath, int eerrno),
15 DIR *opendir(const char *name)
17 int fd = open(name, O_RDONLY|O_NDELAY|O_DIRECTORY|O_LARGEFILE);
23 DIR *__opendir(const char *name)
28 int glob(const char *pattern, int flags,
29 int (*errfunc) (const char *epath, int eerrno),
32 if (!(flags & GLOB_ALTDIRFUNC)) {
33 pglob->gl_closedir = closedir;
34 pglob->gl_readdir = readdir;
35 pglob->gl_opendir = opendir;
36 pglob->gl_lstat = lstat;
37 pglob->gl_stat = stat;
38 flags |= GLOB_ALTDIRFUNC;
40 return real_glob(pattern, flags, errfunc, pglob);
43 static void _init() __attribute__((constructor));
46 real_glob = dlsym(RTLD_NEXT, "glob");
48 fprintf(stderr, "Would the real glob please stand up? %s\n", dlerror());