Synesis Software

glob() API
[Synesis Software UNIX Emulation for Win32]

This API provides facilities for enumerating the file-system contents. More...

Classes

struct  glob_t
 Result structure for glob(). More...

Defines

#define GLOB_NOSPACE   (1)
 (Error result code:) An attempt to allocate memory failed, or if errno was 0 GLOB_LIMIT was specified in the flags and ARG_MAX patterns were matched.
#define GLOB_ABORTED   (2)
 (Error result code:) The scan was stopped because an error was encountered and either GLOB_ERR was set or (*errfunc)() returned non-zero.
#define GLOB_NOMATCH   (3)
 (Error result code:) The pattern does not match any existing pathname, and GLOB_NOCHECK was not set int flags.
#define GLOB_NOSYS   (4)
 (Error result code:) .
#define GLOB_ABEND   GLOB_ABORTED
 (Error result code:) .
#define GLOB_ERR   0x00000001
 Return on read errors.
#define GLOB_MARK   0x00000002
 Append a slash to each name.
#define GLOB_NOSORT   0x00000004
 Don't sort the names.
#define GLOB_DOOFFS   0x00000008
 Insert PGLOB->gl_offs NULLs. Supported from version 1.6 of UNIXEm.
#define GLOB_NOCHECK   0x00000010
 If nothing matches, return the pattern. Supported from version 1.6 of UNIXEm.
#define GLOB_APPEND   0x00000020
 Append to results of a previous call. Not currently supported in this implementation.
#define GLOB_NOESCAPE   0x00000040
 Backslashes don't quote metacharacters. Has no effect in this implementation, since escaping is not supported.
#define GLOB_PERIOD   0x00000080
 Leading `.' can be matched by metachars. Supported from version 1.6 of UNIXEm.
#define GLOB_MAGCHAR   0x00000100
 Set in gl_flags if any metachars seen. Supported from version 1.6 of UNIXEm.
#define GLOB_NOMAGIC   0x00000800
 Use gl_opendir et al functions. Not currently supported in this implementation.
#define GLOB_TILDE   0x00001000
 Expand ~user and ~ to home directories. Partially supported from version 1.6 of UNIXEm: leading ~ is expanded to HOMEDRIVE%HOMEPATH%.
#define GLOB_ONLYDIR   0x00002000
 Match only directories. This implementation guarantees to only return directories when this flag is specified.
#define GLOB_TILDE_CHECK   0x00004000
 Like GLOB_TILDE but return an GLOB_NOMATCH even if GLOB_NOCHECK specified. Supported from version 1.6 of UNIXEm.
#define GLOB_ONLYFILE   0x00008000
 Match only files. Supported from version 1.6 of UNIXEm.
#define GLOB_NODOTSDIRS   0x00010000
 Elide "." and ".." directories from wildcard searches. Supported from version 1.6 of UNIXEm.
#define GLOB_LIMIT   0x00020000
 Limits the search to the number specified by the caller in gl_matchc. Supported from version 1.6 of UNIXEm.

Functions

int glob (char const *pattern, int flags, const int(*errfunc)(char const *, int), glob_t *pglob)
 Generates pathnames matching a pattern.
void globfree (glob_t *pglob)
 Frees the results of a call to glob.

Detailed Description

This API provides facilities for enumerating the file-system contents.


Define Documentation

#define GLOB_ABEND   GLOB_ABORTED

(Error result code:) .

#define GLOB_ABORTED   (2)

(Error result code:) The scan was stopped because an error was encountered and either GLOB_ERR was set or (*errfunc)() returned non-zero.

#define GLOB_APPEND   0x00000020

Append to results of a previous call. Not currently supported in this implementation.

#define GLOB_DOOFFS   0x00000008

Insert PGLOB->gl_offs NULLs. Supported from version 1.6 of UNIXEm.

#define GLOB_ERR   0x00000001

Return on read errors.

#define GLOB_LIMIT   0x00020000

Limits the search to the number specified by the caller in gl_matchc. Supported from version 1.6 of UNIXEm.

#define GLOB_MAGCHAR   0x00000100

Set in gl_flags if any metachars seen. Supported from version 1.6 of UNIXEm.

#define GLOB_MARK   0x00000002

Append a slash to each name.

#define GLOB_NOCHECK   0x00000010

If nothing matches, return the pattern. Supported from version 1.6 of UNIXEm.

#define GLOB_NODOTSDIRS   0x00010000

Elide "." and ".." directories from wildcard searches. Supported from version 1.6 of UNIXEm.

#define GLOB_NOESCAPE   0x00000040

Backslashes don't quote metacharacters. Has no effect in this implementation, since escaping is not supported.

#define GLOB_NOMAGIC   0x00000800

Use gl_opendir et al functions. Not currently supported in this implementation.

<

< Expand "{a,b}" to "a" "b". Not currently supported in this implementation. If no magic chars, return the pattern. Supported from version 1.6 of UNIXEm.

#define GLOB_NOMATCH   (3)

(Error result code:) The pattern does not match any existing pathname, and GLOB_NOCHECK was not set int flags.

#define GLOB_NOSORT   0x00000004

Don't sort the names.

#define GLOB_NOSPACE   (1)

(Error result code:) An attempt to allocate memory failed, or if errno was 0 GLOB_LIMIT was specified in the flags and ARG_MAX patterns were matched.

#define GLOB_NOSYS   (4)

(Error result code:) .

#define GLOB_ONLYDIR   0x00002000

Match only directories. This implementation guarantees to only return directories when this flag is specified.

#define GLOB_ONLYFILE   0x00008000

Match only files. Supported from version 1.6 of UNIXEm.

#define GLOB_PERIOD   0x00000080

Leading `.' can be matched by metachars. Supported from version 1.6 of UNIXEm.

#define GLOB_TILDE   0x00001000

Expand ~user and ~ to home directories. Partially supported from version 1.6 of UNIXEm: leading ~ is expanded to HOMEDRIVE%HOMEPATH%.

#define GLOB_TILDE_CHECK   0x00004000

Like GLOB_TILDE but return an GLOB_NOMATCH even if GLOB_NOCHECK specified. Supported from version 1.6 of UNIXEm.


Function Documentation

int glob ( char const *  pattern,
int  flags,
const int(*)(char const *, int)  errfunc,
glob_t pglob 
)

Generates pathnames matching a pattern.

This function is a pathname generator that implements the rules for file name pattern matching used by the UNIX shell.

Parameters:
pattern The pattern controlling the search
flags A combination of the GLOB_* flags
errfunc A function that is called each time part of the search processing fails
pglob Pointer to a glob_t structure to receive the search results
Returns:
0 on success, otherwise one of the GLOB_* error codes

void globfree ( glob_t pglob  ) 

Frees the results of a call to glob.

This function releases any memory allocated in a call to glob. It must always be called for a successful call to glob.

Parameters:
pglob Pointer to a glob_t structure to receive the search results


UNIX Emulation for Win32 Libraries documentation © Synesis Software Pty Ltd, 2002-2007