【发布时间】:2016-06-21 09:53:40
【问题描述】:
在我的 C++ 程序中,我使用的是ifstream("/etc/mtab", ios::ate|ios:in)。一年前该程序运行良好,但现在ifstream::is_open() 返回错误。通过挖掘我发现/etc/mtab 是/proc/mounts 的符号链接
--更新--
/proc/mounts 又是一个指向/proc/self/mounts 的符号链接,它是实际文件。我无法成功打开这个想法,我正在以 root 用户身份运行程序。所以可能是 ifstream 正在跟随符号链接并且无法打开/proc/self/mounts
【问题讨论】:
-
你能
cat(或hexdump或md5sum或其他)文件吗? -
@5gon12eder 我以普通用户的身份收藏文件
-
@DanielJour ifstream::is_open() 返回 false。
-
您能否发布在所有涉及的符号链接和文件上运行
stat的输出以及在您的设置中展示该行为的最小代码示例?哦,还要检查stream.good()返回的内容!还要检查你是否不小心从流中移动(你是否切换到 C++11)