A path that unambiguously identifies the location of a file without reference to an additional starting location. The elements of a path that determine if it is absolute are operating system dependent.
A file within a file system that acts as a container of directory entries that contain information about other files, possibly including other directory files.
An object within a file system that holds user or system data. Files can be written to, or read from, or both. A file has certain attributes, including type. File types include regular files and directories. Other types of files, such as symbolic links, may be supported by the implementation.
The condition that occurs when multiple threads, processes, or computers interleave access and modification of the same object within a file system.
The name of a file. Filenames dot and dot-dot, consisting solely of one and two period characters respectively, have special meaning. The following characteristics of filenames are operating system dependent:
The permitted characters. [ Example: Some operating systems prohibit the ASCII control characters (0x00 – 0x1F) in filenames. — end example ]
The maximum permitted length.
Filenames that are not permitted.
Filenames that have special meaning.
Case awareness and sensitivity during path resolution.
Special rules that may apply to file types other than regular files, such as directories.
For narrow character strings, the operating system dependent current encoding for pathnames ([fs.def.pathname]). For wide character strings, the implementation-defined execution wide-character set encoding ([lex.charset]).
The operating system dependent pathname format accepted by the host operating system.
Normalization of a generic format pathname means:
If the path is empty, stop.
Replace each directory-separator with a preferred-separator. [ Note: The generic pathname grammar ([fs.path.generic]) defines directory-separator as one or more slashes and preferred-separators. — end note ]
Remove each dot filename and any immediately following directory-separator.
If there is a root-directory, remove all dot-dot filenames and any directory-separators immediately following them. [ Note: These dot-dot filenames attempt to refer to nonexistent parent directories. — end note ]
If the last filename is dot-dot, remove any trailing directory-separator.
If the path is empty, add a dot.
Behavior that is dependent upon the behavior and characteristics of an operating system. See [fs.conform.os].
⟨of a directory⟩ the directory that both contains a directory entry for the given directory and is represented by the filename dot-dot in the given directory.
⟨of other types of files⟩ a directory containing a directory entry for the file under discussion.
A sequence of elements that identify the location of a file within a filesystem. The elements are the root-name, root-directory, and an optional sequence of filenames. The maximum number of elements in the sequence is operating system dependent.
A character string that represents the name of a path. Pathnames are formatted according to the generic pathname format grammar or an operating system dependent native pathname format.
Pathname resolution is the operating system dependent mechanism for resolving a pathname to a particular file in a file hierarchy. There may be multiple pathnames that resolve to the same file. [ Example: POSIX specifies the mechanism in section 4.11, Pathname resolution. — end example ]
A path that is not absolute, and as such, only unambiguously identifies the location of a file when resolved ([fs.def.pathres]) relative to an implied starting location. The elements of a path that determine if it is relative are operating system dependent. [ Note: Pathnames “.” and “..” are relative paths. — end note ]