Synesis Software

Main Page   Modules   Alphabetical List   Compound List   File List   Compound Members   File Members  

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

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

Compounds

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.

#define GLOB_NOCHECK   0x00000010
 If nothing matches, return the pattern.

#define GLOB_APPEND   0x00000020
 Append to results of a previous call.

#define GLOB_NOESCAPE   0x00000040
 Backslashes don't quote metacharacters.

#define GLOB_PERIOD   0x00000080
 Leading `.' can be matched by metachars.

#define GLOB_MAGCHAR   0x00000100
 Set in gl_flags if any metachars seen.

#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.

#define GLOB_TILDE   0x00001000
 Expand ~user and ~ to home directories.

#define GLOB_ONLYDIR   0x00002000
 Match only directories.

#define GLOB_TILDE_CHECK   0x00004000
 Like GLOB_TILDE but return an GLOB_NOMATCH even if GLOB_NOCHECK specified.

#define GLOB_ONLYFILE   0x00008000
 Match only files.

#define GLOB_NODOTSDIRS   0x00010000
 Elide "." and ".." directories from wildcard searches.

#define GLOB_LIMIT   0x00020000
 Limits the search to the number specified by the caller in gl_matchc.


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(*    errfunc)(char const *, int),
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-2005