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.
referensi yang tidak ditentukan untuk simbol '[email protected]@GLIBC_2.4'
Mengapa cat /dev/urandom menggantung skrip bash saya?