getcwd()
現在の作業ディレクトリを取得するために使用しているビルド システム ツールがあります。これは素晴らしいことですが、パスにスペースが含まれている場合があり、これはビルド システムではサポートされていません。シンボリックリンクを作成するだけでよいと思うでしょう:
ln -s "Directory With Spaces" DirectoryWithoutSpaces
そして幸せになってください。しかし、残念ながら、getcwd()
すべてのシンボリック リンクを解決します。を使用しようとしましgetenv("PWD")
たが、 から戻るのと同じパスを指していませんgetcwd()
。環境変数を更新しなかったことのせいmake -C
だと思います。現在、getcwd()
次のようなパスが返されます。
/Users/carl/Directory With Spaces/Some/Other/Directories
そしてgetenv("PWD")
私に与えます:
/Users/carl/DirectoryWithoutSpaces
それでgetcwd()
、シンボリックリンクを解決しないような関数はありますか?
編集:
私が変更され
make -C Some/Other/Directories
に
cd Some/Other/Directories ; make
そして、getenv("PWD")
動作します..他に解決策がない場合は、それを使用できます。