[英]How to make ifstream follow symbolic link?
在我的 C++ 程序中,我使用ifstream("/etc/mtab", ios::ate|ios:in)
。 一年前,程序运行良好,但现在ifstream::is_open()
返回 false。 通过挖掘我发现/etc/mtab
是/proc/mounts
的符号链接
- 更新 -
/proc/mounts
再次是指向/proc/self/mounts
的符号链接,它是实际文件。 我无法成功打开这个以为我以 root 用户身份运行程序的想法。 所以可能是 ifstream 跟随符号链接并且无法打开/proc/self/mounts
尽管没有直接回答如何使用std::fstream
解析符号链接,但C++ 17 引入了一个文件系统库(在打开此问题时不可用)
它可以通过以下方式处理符号链接:
std::filesystem::read_symlink
std::filesystem::copy_symlink
std::filesystem::create_symlink
std::filesystem::is_symlink
请注意,文件系统库也可用于 boost
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.