【发布时间】:2011-12-07 15:36:52
【问题描述】:
我希望有一种简单的方法可以做到这一点,但即使经过一番激烈的谷歌搜索,我也无法发现这一点。
如何使用 boost::filesystem 找到符号链接(在 *nix 系统上)指向的位置?
【问题讨论】:
标签: c++ linux boost filesystems
我希望有一种简单的方法可以做到这一点,但即使经过一番激烈的谷歌搜索,我也无法发现这一点。
如何使用 boost::filesystem 找到符号链接(在 *nix 系统上)指向的位置?
【问题讨论】:
标签: c++ linux boost filesystems
如果您使用的是 boost::filesystem 的 v3,您可以使用 canonical 函数来获取已解析所有符号链接的路径。这可能适用于解析符号链接的路径。
例如,如果 sym.link 是符号链接:
boost::filesystem::path resolved = boost::filesystem::canonical( 'sym.link' );
我实际上并没有尝试过,所以我可能是错的,但似乎有道理。
或者,您可能会遇到read_symlink 的运气
【讨论】:
您可以使用版本3的read_symlink()功能:
path read_symlink(const path& p); path read_symlink(const path& p, system::error_code& ec);返回:如果
p解析为符号链接,则为包含该符号链接内容的路径对象。否则为空路径对象。抛出:如错误报告中所述。 [注意:如果 p 不解析为符号链接,则会出错。 -- 尾注]
【讨论】: