readdir - list file names
char **dirfiles(dir, pattern)
char *dir, *pattern;
These functions return a list of strings which match the pattern given by
the null-terminated string pattern. The list and each of its
component strings are allocated with malloc(3) and are null-terminated.
Pattern may contain shell file name generation meta-characters
Matches any sequence of zero or more characters.
Matches any single character.
- [ . . . ]
Matches any single character which is a member of this character class.
If the first character within the brackets is !, then this
pattern matches any single character which is not a member
of this character class. The class is composed of the characters
listed within the brackets. Furthermore, if two characters are listed
separated by -, the class includes all the characters lexically
between the two, inclusively.
A / may not be matched with a meta-character; nor may a dot at
the beginning of the pattern or a dot immediately following a /.
Genfilnam searches directories for file names which match pattern.
Pattern is interpreted as a full file name specification
which may contain /ís.
If pattern does not contain meta-characters or if it does but no
match is found, pattern is returned as the only element of the list.
Dirfiles searches a single directory, dir, for files which match
Pattern is interpreted as a specification for files within this
directory only. /ís are interpreted as ordinary characters.
These functions support files(misc).
sh(1), malloc(3) in the UNIX Programmerís Manual
Dirfiles returns zero if no match is found.
Although the author believes these functions represent a faithful implementation
of the behavior of the shell meta-characters, there is hardly a consensus
amongst systems tested regarding the manner in which the more bizarre patterns
are interpreted. Indeed, we have seen sh(1) dump core attempting
to interpret some patterns.
If genfilnum is given a pattern such as /*/*/*/*/* on a large
file system, it will likely go away for a long time and finally run out of
The Basmark QuickBASIC Programmerís Manual