Vous pouvez consulter le Boost.Filesystem bibliothèque. Concrètement, il existe une méthode equivalent qui semble faire exactement ce que vous cherchez :
using namespace boost::filesystem;
path p("/path/to/file/one");
path q("/sym_link/to/one");
assert(equivalent(p, q));
Bibliothèque de système de fichiers
Depuis C++17, vous pouvez utiliser le standard <filesystem> bibliothèque. La fonction que vous recherchez est equivalent , sous l'espace de noms std::filesystem :
bool std::filesystem::equivalent(const std::filesystem::path& p1, const filesystem::path& p2);
Pour résumer à partir de la documentation :cette fonction prend deux chemins en paramètres et renvoie vrai s'ils référencent le même fichier ou répertoire, faux sinon. Il y a aussi un noexcept surcharge qui prend un troisième paramètre :un std::error_code dans lequel enregistrer toute erreur éventuelle.
Pour plus d'informations, consultez ma réponse complète à une autre question de débordement de pile.