30 Input/output library [input.output]

30.10 File systems [filesystems]

30.10.34 Filesystem operation functions [fs.op.funcs]

30.10.34.7 Create directory [fs.op.create_directory]

bool create_directory(const path& p); bool create_directory(const path& p, error_code& ec) noexcept;

Effects: Устанавливает постусловие, пытаясь создать каталог, в который p разрешается, как если бы POSIX mkdir() со вторым аргументом static_­cast<int>(perms​::​all). Ошибка создания из- p за преобразования в существующий каталог не должна рассматриваться как ошибка.

Postconditions: is_­directory(p).

Returns: true если был создан новый каталог, иначе false. Подпись с аргументом ec возвращается, false если возникает ошибка.

Throws: Как указано в [fs.err.report].

bool create_directory(const path& p, const path& existing_p); bool create_directory(const path& p, const path& existing_p, error_code& ec) noexcept;

Effects: Устанавливает постусловие, пытаясь создать каталог, в который p разрешается, с атрибутами, скопированными из каталога existing_­p. Набор копируемых атрибутов зависит от операционной системы. Ошибка создания из- p за преобразования в существующий каталог не должна рассматриваться как ошибка. [ Note: Для операционных систем на базе POSIX это те атрибуты, которые копируются собственным API, stat(existing_­p.c_­str(), &attributes_­stat) за которыми следует mkdir(p.c_­str(), attributes_­stat.st_­mode). Для операционных систем на базе Windows атрибуты копируются собственным API CreateDirectoryExW(existing_­p.c_­str(), p.c_­str(), 0). ]end note

Postconditions: is_­directory(p).

Returns: true если был создан новый каталог, иначе false. Подпись с аргументом ec возвращается, false если возникает ошибка.

Throws: Как указано в [fs.err.report].