27 Input/output library [input.output]

27.10 File systems [filesystems]

27.10.8 Class path [class.path]

27.10.8.1 Generic pathname format [path.generic]

pathname:
    root-name root-directoryopt relative-pathopt
    root-directory relative-pathopt
    relative-path
root-name:
    An operating system dependent name that identifies the starting location for absolute paths.
[ Note: Many operating systems define a name
beginning with two directory-separator characters
as a root-name that identifies
network or other resource locations.
Some operating systems
define a single letter followed by a colon
as a drive specifier – a root-name
identifying a specific device such as a disk drive.
 — end note ]
root-directory:
    directory-separator
relative-path:
    filename
    relative-path directory-separator
    relative-path directory-separator filename
filename:
    name
    dot
    dot-dot
name:
    A sequence of characters other than directory-separator characters.
[ Note:
Operating systems often place restrictions
on the characters that may be used in a filename.
For wide portability, users may wish to limit filename
characters to the POSIX Portable Filename Character Set: 
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -  — end note ]
dot:
    The filename consisting solely of a single period character (.).
dot-dot:
    The filename consisting solely of two period characters (..).
directory-separator:
    slash
    slash directory-separator
    preferred-separator
    preferred-separator directory-separator
preferred-separator:
    An operating system dependent directory separator character. May be a synonym for slash.
slash:
    The slash character (/).

Multiple successive directory-separator characters are considered to be the same as one directory-separator character.

The filename dot is treated as a reference to the current directory. The filename dot-dot is treated as a reference to the parent directory. What the filename dot-dot refers to relative to root-directory is implementation-defined. Specific filenames may have special meanings for a particular operating system.