使用boost文件系统解析符号链接

Opt*_*ife 9 c++ linux filesystems boost

我希望有一种简单的方法可以做到这一点,但即使是一些激烈的谷歌搜索,我也无法揭开它.

如何使用boost :: filesystem查找符号链接(在*nix系统上)指向的位置?

obm*_*arg 12

如果您使用的是v3,则boost::filesystem可以使用规范函数来获取已解析所有符号链接的路径.这可能有助于解决符号链接的路径.

例如,如果sym.link是符号链接:

boost::filesystem::path resolved = boost::filesystem::canonical( 'sym.link' );
Run Code Online (Sandbox Code Playgroud)

我实际上没有尝试过,所以我可能错了,但似乎有道理.

或者,您可能会对read_symlink感到满意


Dan*_*ien 5

您可以使用read_symlink()版本3 的功能:

path read_symlink(const path& p);
path read_symlink(const path& p, system::error_code& ec);
Run Code Online (Sandbox Code Playgroud)

返回:如果p解析为符号链接,则为包含该符号链接内容的路径对象.否则为空路径对象.