30 Input/output library [input.output]

30.10 File systems [filesystems]

30.10.15 normal form [fs.def.normal.form]

Путь в нормальной форме называется normalized. Вызывается процесс получения нормализованного пути из пути, который не находится в нормальной форме normalization.

Нормализация имени пути общего формата означает:

  1. Если путь пуст, остановитесь.

  2. Замените каждый символ косой черты в root-nameсимволе preferred-separator.

  3. Замените каждый directory-separatorна preferred-separator. [ Note: Общая грамматика имени пути ([fs.path.generic]) определяет directory-separatorкак одну или несколько косых черт и preferred-separators. ] end note

  4. Удалите каждое dot имя файла и все сразу после него directory-separator.

  5. Если появятся какие-либо, удалите неdot-dot имя файла, за которым сразу следует имя directory-separatorи dot-dot имя файла, а также все, что непосредственно следует за ним directory-separator.

  6. Если есть root-directory, удалите все dot-dot имена файлов и все, что directory-separators сразу после них. [ Note: Эти dot-dot имена файлов пытаются ссылаться на несуществующие родительские каталоги. ] end note

  7. Если последним именем файла является dot-dot, удалите все завершающие directory-separator.

  8. Если путь пуст, добавьте dot.