glob.h
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020: #ifndef _GLOB_H
021: #define _GLOB_H 1
022:
023: #include <sys/cdefs.h>
024:
025: __BEGIN_DECLS
026:
027:
028: #ifndef __size_t
029: typedef __SIZE_TYPE__ __size_t;
030: # if defined __USE_XOPEN || __USE_XOPEN2K8
031: typedef __SIZE_TYPE__ size_t;
032: # endif
033: #else
034:
035:
036: # undef __size_t
037: # define __size_t size_t
038: #endif
039:
040:
041: #define GLOB_ERR (1 << 0)
042: #define GLOB_MARK (1 << 1)
043: #define GLOB_NOSORT (1 << 2)
044: #define GLOB_DOOFFS (1 << 3)
045: #define GLOB_NOCHECK (1 << 4)
046: #define GLOB_APPEND (1 << 5)
047: #define GLOB_NOESCAPE (1 << 6)
048: #define GLOB_PERIOD (1 << 7)
049:
050: #if !defined __USE_POSIX2 || defined __USE_BSD || defined __USE_GNU
051: # define GLOB_MAGCHAR (1 << 8)
052: # define GLOB_ALTDIRFUNC (1 << 9)
053: # define GLOB_BRACE (1 << 10)
054: # define GLOB_NOMAGIC (1 << 11)
055: # define GLOB_TILDE (1 << 12)
056: # define GLOB_ONLYDIR (1 << 13)
057: # define GLOB_TILDE_CHECK (1 << 14)
058:
059: # define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
060: GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \
061: GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE| \
062: GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR|GLOB_TILDE_CHECK)
063: #else
064: # define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
065: GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \
066: GLOB_PERIOD)
067: #endif
068:
069:
070: #define GLOB_NOSPACE 1
071: #define GLOB_ABORTED 2
072: #define GLOB_NOMATCH 3
073: #define GLOB_NOSYS 4
074: #ifdef __USE_GNU
075:
076:
077: # define GLOB_ABEND GLOB_ABORTED
078: #endif
079:
080:
081: #ifdef __USE_GNU
082: struct stat;
083: #endif
084: typedef struct
085: {
086: __size_t gl_pathc;
087: char **gl_pathv;
088: __size_t gl_offs;
089: int gl_flags;
090:
091:
092:
093: void (*gl_closedir) (void *);
094: #ifdef __USE_GNU
095: struct dirent *(*gl_readdir) (void *);
096: #else
097: void *(*gl_readdir) (void *);
098: #endif
099: void *(*gl_opendir) (__const char *);
100: #ifdef __USE_GNU
101: int (*gl_lstat) (__const char *__restrict, struct stat *__restrict);
102: int (*gl_stat) (__const char *__restrict, struct stat *__restrict);
103: #else
104: int (*gl_lstat) (__const char *__restrict, void *__restrict);
105: int (*gl_stat) (__const char *__restrict, void *__restrict);
106: #endif
107: } glob_t;
108:
109: #ifdef __USE_LARGEFILE64
110: # ifdef __USE_GNU
111: struct stat64;
112: # endif
113: typedef struct
114: {
115: __size_t gl_pathc;
116: char **gl_pathv;
117: __size_t gl_offs;
118: int gl_flags;
119:
120:
121:
122: void (*gl_closedir) (void *);
123: # ifdef __USE_GNU
124: struct dirent64 *(*gl_readdir) (void *);
125: # else
126: void *(*gl_readdir) (void *);
127: # endif
128: void *(*gl_opendir) (__const char *);
129: # ifdef __USE_GNU
130: int (*gl_lstat) (__const char *__restrict, struct stat64 *__restrict);
131: int (*gl_stat) (__const char *__restrict, struct stat64 *__restrict);
132: # else
133: int (*gl_lstat) (__const char *__restrict, void *__restrict);
134: int (*gl_stat) (__const char *__restrict, void *__restrict);
135: # endif
136: } glob64_t;
137: #endif
138:
139:
140:
141:
142:
143:
144:
145:
146:
147: #if !defined __USE_FILE_OFFSET64
148: extern int glob (__const char *__restrict __pattern, int __flags,
149: int (*__errfunc) (__const char *, int),
150: glob_t *__restrict __pglob) __THROW;
151:
152:
153: extern void globfree (glob_t *__pglob) __THROW;
154: #else
155: extern int __REDIRECT_NTH (glob, (__const char *__restrict __pattern,
156: int __flags,
157: int (*__errfunc) (__const char *, int),
158: glob_t *__restrict __pglob), glob64);
159:
160: extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
161: #endif
162:
163: #ifdef __USE_LARGEFILE64
164: extern int glob64 (__const char *__restrict __pattern, int __flags,
165: int (*__errfunc) (__const char *, int),
166: glob64_t *__restrict __pglob) __THROW;
167:
168: extern void globfree64 (glob64_t *__pglob) __THROW;
169: #endif
170:
171:
172: #ifdef __USE_GNU
173:
174:
175:
176:
177:
178: extern int glob_pattern_p (__const char *__pattern, int __quote) __THROW;
179: #endif
180:
181: __END_DECLS
182:
183: #endif
184:
© Andrew Scott 2006 -
2024,
All Rights Reserved