FBB::Glob(3) Wrapper around glob(3) to find files matching a pattern

SYNOPSIS

#include <bobcat/glob>
Linking option: -lbobcat

DESCRIPTION

The FBB::Glob class is a wrapper around the C function glob(3). It returns a list of files matching a certain pattern provided to FBB::Glob's constructors or members.

NAMESPACE

FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace FBB.

INHERITS FROM

-

ENUMERATIONS

Glob::Type:
This enumeration, which is identical to the stat(3bobcat) Type enumeration, defines the following values:

  • BLOCK_DEVICE: the object represents a block device
  • CHARACTER_DEVICE: the object represents a character device
  • DIRECTORY: the object represents a directory
  • FIFO: the object represents a named pipe (a queue)
  • REGULAR_FILE: the object represents a regular file
  • SOCKET: the object represents a socket
  • SYMBOLIC_LINK: the object represents a symbolic link
  • ANY: any of the above types

Glob::Flags:

  • ERR: Return on read errors;
  • MARK: Append a slash to each name.
  • NOSORT: Don't sort the names.
  • NOESCAPE: Backslashes don't quote metacharacters.
  • PERIOD: Leading .-characters can be matched by metachars (i.e., * and ?).

Glob::Dots:

  • FIRST: Filenames starting with a dot will be listed first. Within this set and in the leftover-set the relative ordering is maintained.
  • DEFAULT: Return filenames as they appear in the globbing process.

CONSTRUCTORS

  • Glob(std::string const &pattern = "*", int flags = PERIOD, Dots dots = FIRST):
    This constructor (which can also be used as the default constructor) determines all elements matching pattern.
  • An Exception exception is thrown if the constructor could not properly complete it tasks.
  • Multiple flags may be specified, separated by the bitor operator.
  • This constructor properly completes its task if only defined Flag values were specified and if the glob(3) function returned without errors.
  • Glob(Type type, std::string const &pattern = "*", int flags = PERIOD, Dots dots = FIRST):
    This constructor determines all elements of pattern matching Type. The specified type value may consist of any bitor-ed combination of enum values defined by the Type enum. Remaining parameters and

Glob offers copy and move constructors.

OVERLOADED OPERATORS

  • Glob &operator=(Glob const &other):
    The assignment operator is available.
  • Glob &operator=(Glob &&tmp):
    The move-assignment operator is available.
  • char const *operator[](size_t idx) const:
    The element at index position idx is returns as a C string. It returns an empty string if idx is or exceeds size().

MEMBER FUNCTIONS

  • void verify() const:
    Empty function, kept for backward compatibility.
  • size_t size() const:
    Returns the number of elements that were detected.
  • char const *const *begin() const:
    Returns a pointer to the first element that was detected. This pointer can be used in generic algorithms as an output-iterator supporting pointer arithmetic.
  • char const *const *end() const:
    Returns a pointer beyond the last element that was detected. This pointer can be used in generic algorithms as an output-iterator supporting pointer arithmetic.
  • void swap(Glob &other):
    Swaps the contents of the other object with the current object.

EXAMPLES

    int main(int argc, char **argv)
    {
        if (argc == 1)
        {
            cout << "Provide glob-expression as 1st arg\n";
            return 1;
        }
    
        cout << "General:\n";
    
        Glob general;
    
        for (size_t idx = 0; idx < general.size(); idx++)
            cout << idx << ": " << general[idx] << endl;
    
        cout << "Pattern: " << argv[1] << "\n";
    
        Glob pattern(argv[1], Glob::PERIOD, Glob::DEFAULT);
    
        for (size_t idx = 0; idx < pattern.size(); idx++)
            cout << idx << ": " << pattern[idx] << endl;
    
        return 0;
    }
        

FILES

bobcat/glob - defines the class interface

BUGS

No Reported Bugs.

DISTRIBUTION FILES

  • bobcat_4.02.00-x.dsc: detached signature;
  • bobcat_4.02.00-x.tar.gz: source archive;
  • bobcat_4.02.00-x_i386.changes: change log;
  • libbobcat1_4.02.00-x_*.deb: debian package holding the libraries;
  • libbobcat1-dev_4.02.00-x_*.deb: debian package holding the libraries, headers and manual pages;
  • http://sourceforge.net/projects/bobcat: public archive location;

BOBCAT

Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.

COPYRIGHT

This is free software, distributed under the terms of the GNU General Public License (GPL).

AUTHOR

Frank B. Brokken ([email protected]).