指定されたディレクトリとその子ディレクトリ内の C ファイル間のすべての #include 依存関係を再帰的に見つけるプログラムを作成しています。依存関係のパスは絶対パスでなければならないので、相対パスとシンボリック リンクの解決にはrealpathを使用します。多くのファイルが存在する可能性があるため、プログラムを OpenMP または pthreads でマルチスレッド化することにしました。
問題は、realpath が作業ディレクトリを介してパスを解決することです。すべてのスレッドが同じ作業ディレクトリを共有するため、 chdirと realpathにミューテックスを配置する必要があります。
引数としてパスを解決するためのディレクトリも取る realpath の代替標準関数はありますか?