Anda dapat memeriksa Boost.Filesystem
Perpustakaan. Secara khusus, ada metode equivalent
yang tampaknya melakukan persis seperti yang Anda cari:
using namespace boost::filesystem;
path p("/path/to/file/one");
path q("/sym_link/to/one");
assert(equivalent(p, q));
Pustaka sistem file
Sejak C++17 Anda dapat menggunakan <filesystem>
standar Perpustakaan. Fungsi yang Anda cari adalah equivalent
, di bawah namespace std::filesystem
:
bool std::filesystem::equivalent(const std::filesystem::path& p1, const filesystem::path& p2);
Untuk meringkas dari dokumentasi:fungsi ini mengambil dua jalur sebagai parameter dan mengembalikan true jika mereferensikan file atau direktori yang sama, sebaliknya false. Ada juga noexcept
kelebihan beban yang mengambil parameter ketiga:sebuah std::error_code
di mana untuk menyimpan kesalahan yang mungkin terjadi.
Untuk informasi lebih lanjut, lihat jawaban lengkap saya untuk pertanyaan stack overflow lainnya.