Cómo obtener la ruta absoluta para una ruta relativa determinada mediante programación en Linux?

StackOverflow https://stackoverflow.com/questions/2341808

Pregunta

Como llegar a la ruta absoluta para una ruta relativa determinada mediante programación en Linux?

Encasode de Windows que tiene la API _fullpath(). En otras palabras, me refiero a lo que es análoga a la API _fullpath de Windows en Linux?

¿Fue útil?

Solución

Como Pablo mencionó, el uso realpath(). Tenga en cuenta sin embargo, que desde hace muchos sistemas de archivos en el soporte de Linux enlaces duros , cualquier directorio dado puede tener una número de diferentes rutas absolutas.

Otros consejos

Trate realpath :

$ man realpath

Esto también está disponible en BSD, OS X, et al.

No es la realpath de stdlib.h

Correr en RedHat 5.3, la ruta real no existe, pero se instala readlink. Se puede utilizar en rutas relativas y enlaces simbólicos, además de que resolverá los enlaces simbólicos de forma recursiva para usted. Es por lo tanto una mejor opción que la ruta real en mi opinión

readlink -f .

El también es otra forma útil, como "readlink -m $ archivo"

En primer lugar, funciona sin necesidad de archivo de destino de existir. En segundo lugar, que se encargará de enlaces simbólicos y obtener la ruta realmente real.

// 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();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top