Several system calls are usually available in the context of the bf(C)
programming language. Such function (like bf(rename)(2), tt(truncate)(2),
bf(opendir)(2), and bf(realpath)(3)) are of course also available in bf(C++),
but their signatures and use are often less attractive, as they expect tt(char
const *) parameters, and may use static buffers or memory allocation based on
bf(malloc)(3) and bf(free)(3).

Wrappers around these functions have been available since 2003 in the
url(Boost library)
    (http://www.boost.org/doc/libs/1_65_1/libs/filesystem/doc/index.htm)
        hi(Boost Filesystem)
    Currently, bf(C++) directly supports these facilities in the
tt(std::(experimental::)filesystem)hi(experimental::filesystem)hi(filesystem)
namespace. To use these facilities the
    hi(experimental/filesystem) header file must be included. In addition,
programs using facilities from the tt(std::(experimental::)filesystem)
namespace must be linked against the hi(stdc++fs library)tt(stdc++fs) library:
tt(-lstdc++fs).

Although the tt(filesystem) namespace currently is nested under the
tt(experimental) namespace, all facilities are available, and it's likely that
in due time `experimental' in front of tt(filesystem) will be dropped. 

The tt(filesystem) namespace is extensive: it offers more
than 10 different classes, and over 30 different free functions.

In this and subsequent subsections the notation tt(fs::) is used to refer to
the namespace tt(std::(experimental::)filesystem).


