1


0

2つの異なるパスが実際に同じファイルを参照しているかどうかを判断するための*移植性のある*方法があるかどうか疑問に思いました。

私は このスレッドを読みましたが、ウィンドウズ特有です。

私の知る限り、_fstream_はその仕事には向いていません。

1 Answer


2


ファイルシステムライブラリ

C 17以降、標準の ``ライブラリを使用できます。 あなたが探している関数は、名前空間 `std

filesystem`の下で、` equivalent`です:

bool std :: filesystem :: equivalent(const std ::ファイルシステム:: path
documentationから要約すると、この関数はパラメータとして2つのパスを取り、それらが同じファイルまたはディレクトリを参照している場合はtrue、それ以外の場合はfalseを返します。 3番目のパラメータをとる noexcept`オーバーロードもあります:考えられるエラーを保存するための std

error_code`です。

詳細については 私の答えをご覧ください。 ccの同じファイルへのパス参照[あなたが言及したスレッド]