У меня есть инструмент системы сборки, который использует 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()
, которая не разрешает символические ссылки?
Edit:
я изменил
make -C Some/Other/Directories
до
cd Some/Other/Directories ; make
А потом getenv("PWD")
работает .. Если нет другого решения, я могу это использовать.