Spec-Zone.ru › C++

std::filesystem::absolute

Определено в заголовке <filesystem>
path absolute( const std::filesystem::path& p );
(1) (с C++17)
path absolute( const std::filesystem::path& p, std::error_code& ec );
(2) (с C++17)

Возвращает путь, ссылающийся на то же место на файловой системе, что и p, для которого filesystem::path::is_absolute() является true.

2) Этот небросковый перегруз возвращает путь, созданный по умолчанию, если произошла ошибка.

Параметры

p - путь для преобразования в абсолютный вид
ec - параметр-результат для отчета об ошибках в небросковом перегрузе

Значение результата

Возвращает абсолютный (хотя и не обязательно канонический) имя пути, ссылающийся на тот же файл, что и p.

Исключения

Любой перегруз, не помеченный как noexcept может выбросить std::bad_alloc в случае сбоя выделения памяти.

1) Выбрасывает std::filesystem::filesystem_error при ошибках в API операционной системы, созданный с p в качестве первого аргумента пути и кодом ошибки операционной системы в качестве аргумента ошибки.
2) Устанавливает параметр std::error_code& в код ошибки API операционной системы, если вызов API операционной системы завершился ошибкой, и выполняет ec.clear() в случае отсутствия ошибок.

Примечания

Реализации рекомендуется не считать, что p не существует, как ошибку.

Для операционных систем на базе POSIX, std::filesystem::absolute(p) эквивалентно std::filesystem::current_path() / p за исключением случаев, когда p — это пустой путь.

Для Windows, std::filesystem::absolute может быть реализовано как вызов GetFullPathNameW.

Пример

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
 
int main()
{
    std::filesystem::path p = "foo.c";
    std::cout << "Current path is " << std::filesystem::current_path() << '\n';
    std::cout << "Absolute path for " << p << " is " << fs::absolute(p) << '\n';
}

Возможный вывод:

Current path is "/tmp/1666297965.0051296"
Absolute path for "foo.c" is "/tmp/1666297965.0051296/foo.c"

См. также

canonicalweakly_canonical
(C++17)
формирует канонический путь
(функция)
relativeproximate
(C++17)
формирует относительный путь
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/filesystem/absolute

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API