Función RealPath 3 C

Función RealPath 3 C
Mientras trabaja en los sistemas operativos Linux o Windows, puede encontrar muchos archivos y directorios. Todos los archivos y directorios de cualquier sistema operativo poseen alguna ruta desde su directorio raíz. Dentro de muchos sistemas operativos, esta ruta se puede ver en la parte superior del explorador de archivos para un archivo o carpeta en particular. La biblioteca POSIX C surgió la función "RealPath" para mostrar la ruta completa y original de cualquier archivo desde el directorio actual en particular. Comencemos dentro del sistema operativo Kali Linux.

Ejemplo 1:

Dentro de nuestro primer ejemplo, echaremos un vistazo al código C simple de usar la función "RealPath" para obtener la ruta real y completa de algunos archivos del directorio de trabajo actual del sistema. Necesitamos usar un total de 6 archivos de encabezado básicos al comienzo de este código incluido con el uso de la palabra clave "#include". Algunas bibliotecas son bibliotecas estándar para usar la secuencia de salida de entrada en el código, algunas están aquí para utilizar los valores de las cadenas y otras se utilizan para realizar el manejo de excepciones. La función principal () de este código define una matriz de tipo de caracteres llamada "búfer" con un tamaño incorporado de "ruta máxima" o 0. Esta matriz se utiliza para guardar el camino real y completo de algunos directorios.

La función realpath () toma el "archivo.Nombre de archivo de TXT "con la matriz de" búfer "que se le pasa como un argumento para almacenar toda la ruta. Se inicializa una "ruta" del tipo de personaje para apuntar hacia la dirección de una variable "búfer" que contiene la ruta de un archivo aprobado por la función RealPath ().

Aquí, viene la instrucción "if-else" para verificar si obtuvimos la referencia correcta para la ruta del archivo o si el puntero de "ruta" está vacío. Si devuelve la referencia correcta, la función printf se usa para mostrar el texto "la ruta de archivo completa de SomeFile.txt: "junto con la ruta real del archivo en particular. De lo contrario, se ejecuta la instrucción de la otra y la instrucción printf utilizada dentro de ella arrojará un error utilizando la función "strerror", tomando el "errno" como argumento. La función Perror se usa para mostrar el mismo error una vez más con el nombre de error "RealPath". Para obtener el error, la función de salida de este código termina el programa lo antes posible. Guardemos nuestro primer ejemplo y lo compilemos para ver sus resultados.


Usamos el compilador GCC para compilar el realpath.archivo c con la opción -o para generar su archivo de objeto llamado "RealPath.fuera "dentro del mismo directorio de trabajo. Este comando es exitoso y obtuvimos el mismo archivo de objeto de nombre en el directorio de inicio "SRC" según la salida de la instrucción "LS".


Ahora, ejecutamos el archivo de objeto que acabamos de crear con el "./"Caracteres en el mismo directorio de trabajo. La salida de este comando nos muestra la ruta completa para este archivo en particular que comienza desde la carpeta raíz como el “/home/linux/src/somefile.TXT".

Ejemplo 2:

Comencemos con otro ejemplo para utilizar la función RealPath () para obtener la ruta real de algunos archivos. Dentro de este código C, agregamos los mismos 6 archivos de encabezado con la palabra clave "#include". Después de eso, la función main () se inicializa con la variable de puntero de tipo de caracteres "ruta de enlace" que almacena alguna ruta como el "/src/somefile.TXT". Se utiliza una matriz de "ruta real" para almacenar la ruta real del "archivo.TXT "Archivo con" +1 "para obtener la ruta de un archivo mencionado después del segundo carácter"/". Se define otro puntero "PTR" del tipo de personaje.

Pasamos la variable del puntero de la ruta del enlace y la matriz de ruta real a la función RealPath () para obtener toda la ruta del "/src/somefile.txt "en la matriz de" ruta real ". El resultado devuelto se guarda en la variable de puntero "PTR". Dentro de la parte "IF", si el "PTR" devuelve el resultado por la función RealPath () que contiene algún número de referencia, la instrucción Printf muestra la ruta real a través de la matriz de ruta real. De lo contrario, la parte de lo contrario de este código se ejecuta y genera un error mediante el uso de la función Strerror utilizando la variable "errno" como argumento. La función de salida es finalizar este programa.


Compilamos este código C con el compilador GCC y creamos su "RealPath1.File de objeto Out ”precedido por la opción -o.


Después de ejecutar su archivo de objeto con el "./"Carácter, recibimos el error porque no hemos proporcionado el formato correcto de la ruta del archivo"/src/somefile.TXT".


Actualicemos el código una vez más para evitar este error poco después de ejecutar el archivo de objeto. Actualizamos su primera línea dentro de la función principal,. La "ruta de enlace" de tipo de personaje que contiene el archivo específico con una carpeta a continuación se actualiza. Ahora, agregamos el nombre de un "archivo.archivo txt "que reside en el directorio de trabajo actual" src "en lugar del"/src/somefile.ruta de txt "a la carpeta de directorio de trabajo. El resto del código se usa sin ningún cambio. Guarde y ejecute este código para ver los resultados.


Después de compilar este archivo C con el compilador GCC y crear su "RealPath1.Out "Out" Archivo de objeto con el objeto -o, está listo para ser ejecutado.


Después de la ejecución del archivo de objeto C, la ruta real y completa del archivo específico "algún archivo.txt "se muestra en la pantalla terminal.

Conclusión

Este artículo trata sobre el uso del método RealPath de la biblioteca POSIX C para mostrar la ruta real y completa de algún archivo específico. Para esto, probamos los dos ejemplos C en la plataforma Kali Linux. Dentro de nuestros ejemplos, observamos cómo reacciona esta función a un solo nombre de archivo o con una ruta específica.