Namespaces
Variants

std::filesystem:: absolute

From ru.cppreference.net
Определено в заголовочном файле <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"

Смотрите также

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