Spec-Zone.ru › C++

std::filesystem::read_symlink

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

Если путь p указывает на символическую ссылку, возвращает новый объект пути, который ссылается на целевой объект этой символической ссылки.

Возникает ошибка, если p не ссылается на символическую ссылку.

Небросковая перегрузка возвращает пустой путь при возникновении ошибок.

Параметры

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

Значение возврата

Целевой объект символической ссылки (который может не существовать).

Исключения

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

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

Пример

#include <filesystem>
#include <iostream>
 
namespace fs = std::filesystem;
 
int main()
{
    for (fs::path p : {"/usr/bin/gcc", "/bin/cat", "/bin/mouse"})
    {
        std::cout << p;
        fs::exists(p) ?
            fs::is_symlink(p) ?
                std::cout << " -> " << fs::read_symlink(p) << '\n' :
                std::cout << " exists but it is not a symlink\n" :
            std::cout << " does not exist\n";
    }
}

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

"/usr/bin/gcc" -> "gcc-5"
"/bin/cat" exists but it is not a symlink
"/bin/mouse" does not exist

См. также

is_symlink
(C++17)
проверяет, ссылается ли аргумент на символическую ссылку
(функция)
create_symlinkcreate_directory_symlink
(C++17)(C++17)
создаёт символическую ссылку
(функция)
copy_symlink
(C++17)
копирует символическую ссылку
(функция)
statussymlink_status
(C++17)(C++17)
определяет атрибуты файла
определяет атрибуты файла, проверяя целевой объект символической ссылки
(функция)

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

Spec-Zone.ru

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