HP-UX Reference (11i v2 07/12) - 3 Library Functions A-M (vol 6)
g
glob(3C) glob(3C)
NAME
glob(), globfree() - file name generation function
SYNOPSIS
#include <glob.h>
int glob(
const char *pattern,
int flags,
int (*errfunc)(const char *, int),
glob_t *pglob
);
void globfree(glob_t *pglob);
DESCRIPTION
glob() is a path name generator. pattern is a pointer to a path name pattern to be expanded. If pattern
contains any of the special characters
*
, ?,or[, pattern is matched against all accessible path names. In
order to have access to a path name,
glob() requires:
• Search permission on every component of a path except the last.
• Read permission on each directory of any file name component of pattern that contains any of the
above special characters.
glob() stores the number of matched path names in pglob −> gl_pathc and a pointer to a sorted list of
path names in pglob − >gl_pathv. The first pointer after the last path name is a NULL pointer.
It is the caller’s responsibility to allocate space for the structure pointed to by pglob.
glob() allocates
other space as needed, including the memory pointed to by gl_pathv.
globfree() frees any space asso-
ciated with pglob from a previous call to glob().
The flags argument is used to control the behavior of glob(). The value of flags is the bit-wise inclusive
OR of the following constants defined in
<glob.h>:
GLOB_NOESCAPE Disable backslash escaping.
GLOB_ERR Causes glob() to return when it first encounters a directory that it cannot
open or read. Ordinarily, glob() continues to find matches.
GLOB_MARK Each path name that matches pattern and is a directory, has a / appended.
GLOB_NOSORT Ordinarily, glob() sorts the matching path names according to the currently
active collation sequence as defined by the LC_COLLATE category. When this
flag is used, the order of path names returned is unspecified.
GLOB_NOCHECK If pattern does not match any path name, glob() returns a list consisting of
only pattern, and the number of matched path names is 1.
GLOB_DOOFFS Make use of pglob −>gl_offs. If this flag is set, pglob −>gl_offs is used to specify
how many NULL pointers to add to the beginning of pglob −>gl_pathv. In other
words, pglob −>gl_pathv points to pglob −>gl_offs NULL pointers, followed by
pglob −>gl_pathc path name pointers, followed by a NULL pointer.
GLOB_APPEND Append path names generated to the ones from a previous call to glob().
The GLOB_APPEND flag can be used to append a new set of path names to those found in a previous
call to glob(). The following rules apply when two or more calls to glob() are made with the
same value of pglob and without intervening calls to globfree() :
• The first call must not set GLOB_APPEND . All subsequent calls must set it.
• All of the calls must set GLOB_DOOFFS , or all must not set it.
• After the second call, pglob −> gl_pathv points to a list containing the following:
• Zero or more NULL pointers, as specified by GOB_DOOFFS and pglob −>gl_offs.
• Pointers to the path names that were in the pglob −>gl_pathv list before the call, in
the same order as before.
• Pointers to the new path names generated by the second call, in the specified order.
HP-UX 11i Version 2: December 2007 Update − 1 − Hewlett-Packard Company 567