Můžete se podívat na Boost.Filesystem knihovna. Konkrétně existuje metoda equivalent zdá se, že dělá přesně to, co hledáte:
using namespace boost::filesystem;
path p("/path/to/file/one");
path q("/sym_link/to/one");
assert(equivalent(p, q));
Knihovna systému souborů
Od C++17 můžete použít standardní <filesystem> knihovna. Funkce, kterou hledáte, je equivalent , pod jmenným prostorem std::filesystem :
bool std::filesystem::equivalent(const std::filesystem::path& p1, const filesystem::path& p2);
Abychom to shrnuli z dokumentace:tato funkce bere jako parametry dvě cesty a vrací true, pokud odkazují na stejný soubor nebo adresář, jinak false. Existuje také noexcept přetížení, které přebírá třetí parametr:std::error_code do kterého se uloží případná chyba.
Pro více informací se podívejte na mou úplnou odpověď na další otázku přetečení zásobníku.
nedefinovaný odkaz na symbol '[email protected]@GLIBC_2.4'
Proč cat /dev/urandom zavěsil můj bash skript?