大文字と小文字を区別しないでインストールされたcifsファイルシステム/network/cifs
が与えられた場合、Cを使用して大文字と小文字を区別するパスを取得するにはどうすればよいですか?ディレクトリ反復なしでLinux上で大文字と小文字を区別するパスを取得するにはどうすればよいですか?
たとえば、fsにはファイル/network/cfis/Adena/t.txt
があります。 /network/cfis/AdEnA/T.txt
(適切に解決される)が与えられたら、私は/network/cfis/Adena/t.txt
がほしいと思う。
私はパスを反復して繰り返し、すべての小文字でそれらをマッチングさせ、ディレクトリ反復によって返された実際のケースを得る方法を知っています。しかし、これにはたくさんのシステムコールが含まれています。
マウントオプションの変更は解決策ではありません。
これが不可能な場合は、パスが大文字小文字を区別しないファイルシステムにあるかどうかを判断できますか?この方法では、必要な場合を除き、再帰的なディレクトリの繰り返しを避けることができます。
あなたは '場合(NULL == GetCurrentDir(バッファ、FILENAME_MAX))' – Dan
を意味するものではありません。コードで 'getcwd'の代わりに' GetCurrentDir'マクロを使うつもりですか? –
渡されたパスが現在のディレクトリではない場合はどうなりますか? – RedX