Хорошо, я отвечаю, даже если вы уже приняли ответ.
Еще лучший способ обернуть вызов getcwd - использовать boost :: filesystem , где вы получаете объект path
из функции current_path()
. Библиотека файловой системы Boost позволяет вам делать множество других полезных вещей, которые в противном случае вам пришлось бы выполнять много разборов строк, таких как проверка наличия файлов / каталогов, получение родительского пути, заполнение путей и так далее. Проверьте это, он также переносим - скорее всего, такого большого количества кода разбора строк, который можно было бы использовать, не будет.
Обновление (2016): Файловая система была опубликована как техническая спецификация в 2015 году на основе Boost Filesystem v3. Это означает, что он может быть доступен уже с вашим компилятором (например, Visual Studio 2015). Мне также кажется вероятным, что он станет частью будущего стандарта C ++ (я бы предположил C ++ 17, но я не знаю о текущем состоянии).
Обновление (2017): Библиотека файловой системы была объединена с ISO C ++ в C ++ 17, для
std::filesystem::current_path();