[英]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.