std::experimental::filesystem:: read_symlink
From cppreference.net
<
cpp
|
experimental
|
fs
|
Определено в заголовке
<experimental/filesystem>
|
||
|
path read_symlink
(
const
path
&
p
)
;
path read_symlink ( const path & p, error_code & ec ) ; |
(filesystem TS) | |
Если путь p указывает на символическую ссылку, возвращает новый объект пути, который указывает на цель этой символической ссылки.
Это ошибка, если p не указывает на символическую ссылку.
Нетранслирующая перегрузка возвращает пустой путь при ошибках.
Содержание |
Параметры
| p | - | путь к символической ссылке |
| ec | - | выходной параметр для сообщения об ошибках в непорождающей перегрузке |
Возвращаемое значение
Цель символьной ссылки (которая может не существовать).
Исключения
The overload that does not take an error_code & parameter throws filesystem_error on underlying OS API errors, constructed with p as the first argument and the OS error code as the error code argument. std:: bad_alloc may be thrown if memory allocation fails. The overload taking an error_code & parameter sets it to the OS API error code if an OS API call fails, and executes ec. clear ( ) if no errors occur. This overload has
noexcept
спецификация:
noexcept
Пример
Запустить этот код
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { // в типичной системе Linux /lib/libc.so.6 является символьной ссылкой fs::path p = "/lib/libc.so.6"; if (exists(p) && is_symlink(p)) std::cout << p << " -> " << read_symlink(p) << '\n'; else std::cout << p << " does not exist or is not a symlink\n"; }
Возможный вывод:
"/lib/libc.so.6" -> "libc-2.12.so"
Смотрите также
|
проверяет, ссылается ли аргумент на символическую ссылку
(функция) |
|
|
создаёт символическую ссылку
(функция) |
|
|
копирует символическую ссылку
(функция) |
|
|
определяет атрибуты файла
определяет атрибуты файла, проверяя цель символической ссылки (функция) |