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
См. также
|
(C++17) | проверяет, ссылается ли аргумент на символическую ссылку (функция) |
|
(C++17)(C++17) | создаёт символическую ссылку (функция) |
|
(C++17) | копирует символическую ссылку (функция) |
|
(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