Как получить абсолютный путь для данного относительного пути программно в Linux?
Как получить абсолютный путь для данного относительного пути программно в Linux?
В случае Windows у нас есть API _fullpath(). Другими словами, я имею в виду, что аналогично API для _fullpath Windows в Linux?
Ответ 1
Как сказал Павел, используйте realpath(). Обратите внимание, что, поскольку многие файловые системы в Linux поддерживают жесткие ссылки, любой данный каталог может иметь несколько разных абсолютных путей.
Запуск на RedHat 5.3, realpath не существует, но readlink установлен. Вы можете использовать его на относительных путях и символических ссылках, а также рекурсивно разрешать символические ссылки для вас. Это, таким образом, лучший вариант, что realpath по-моему
readlink -f .
Ответ 6
Еще один полезный способ, например "readlink -m $filename"
Прежде всего, он работает без требования для существования целевого файла.
Во-вторых, он будет обрабатывать символические ссылки и получать действительно реальный путь.
Ответ 7
// For C++ with Gnome Gtkmm3 libraries
#include <glibmm.h>
#include <giomm.h>
string PathRel2Abs(string relpath) {
Glib::RefPtr<Gio::File> file = Gio::File::create_for_path(relpath);
return file->get_path();
}