Llamada al sistema chdir de Linux en C

Llamada Al Sistema Chdir De Linux En C



Los cambios en el directorio de trabajo actual de un dispositivo se realizan mediante el método 'CHDIR'. En una variedad de circunstancias, puede decidir cambiar la carpeta de trabajo actual de su dispositivo. O desea ejecutar un script C desde una carpeta en lugar de su directorio de trabajo actual. En consecuencia, para ejecutar ese código C específico, debe modificar su carpeta de trabajo actual. Además, el método 'getcwd' del lenguaje de codificación C se puede utilizar para determinar rápidamente cuándo ha cambiado la carpeta de trabajo actual. Ahora, usaremos la función chdir() de C en este artículo para cambiar un directorio de trabajo.

Ejemplo 01:

Comencemos con el funcionamiento de la función chdir() de C en el sistema operativo Linux. Para esto, debe asegurarse de que el compilador de C ya esté montado en su extremo. En la mayoría de los casos, solemos usar el compilador “gcc” de C en nuestro sistema operativo Kali Linux. Para comenzar con este ejemplo, debemos tener un archivo C con la extensión 'c'. Lo llamamos p1.c e intentamos abrirlo con el editor 'nano' de Linux como se presenta a continuación.







Cuando su archivo se abre en el editor, debe comenzar a codificar en él. Hemos estado comenzando nuestro programa C agregando las principales bibliotecas de encabezado de C que son imprescindibles en cualquier programa C. Por lo tanto, las bibliotecas de encabezado stdio.h y unistd.h se utilizan para asegurarse de que la entrada y la salida estándar puedan fluir dentro del programa. El encabezado unistd.h se ha utilizado para hacer uso de algunas funciones estándar de C que se requieren especialmente para este ejemplo. Ahora, hemos iniciado la función de controlador principal () de C en este código para que se ejecute automáticamente en la ejecución. La variable de matriz de tipo de carácter 'ruta' se ha definido con un tamaño de 100 porque almacena solo 100 valores.



La declaración de la función printf() se ha utilizado para simplemente imprimir la carpeta del directorio de trabajo actual de este archivo C utilizando la función 'getcwd()'. Esta función utiliza la variable de matriz 'ruta' con un tamaño de 100 para obtener el directorio de trabajo actual y pasarlo a la instrucción de la función printf() para su visualización. Ahora es el momento de usar la función chdir(). Podemos pasar cualquier tipo de caracteres para especificar si queremos avanzar en el directorio o retroceder dentro del mismo directorio.



Por lo tanto, hemos probado los caracteres “..” en la declaración de la función chdir() para movernos desde el directorio de trabajo actual hacia atrás, es decir, un nivel por debajo del directorio de trabajo actual. Tenga en cuenta que en este momento, hemos estado trabajando en la carpeta del proyecto de nuestro directorio de trabajo principal 'Linux' del sistema Kali Linux. Ahora, estamos en el directorio 'Linux' en lugar del directorio 'proyecto' después de usar la función 'chdir'. Ahora, probamos la declaración de la función 'printf ()' una vez más para mostrar el directorio de trabajo actual usando la función 'getcwd' en él. Nuestro programa finaliza con la declaración return 0.





Después de guardar este programa en C, necesitamos compilarlo usando el compilador 'gcc' que ya hemos configurado en nuestro extremo. Usando esta instrucción gcc, hemos creado un archivo de objeto de este archivo C llamado 'p1.out' usando la opción -o como se muestra a continuación.



Ahora, cuando ejecute su archivo de objeto en su terminal Linux, primero obtendrá el directorio de trabajo utilizado por el programa antes del uso de la función chdir(). Después del uso de la función chdir(), nos trasladamos al directorio de abajo y se muestra ese directorio en particular 'inicio'.

Ejemplo 02:



Usando las mismas bibliotecas de encabezados, comenzamos este código de programa. Dentro de la función main() de este programa, hemos estado usando la instrucción 'if' utilizando la función chdir() en ella.

Esta función verificará si el '/usuario' existe en el sistema o no configurando la condición '/usuario! = 0'. Si el directorio no existe en el sistema actual, la llamada a la función perror se utilizará para mostrar el mensaje de error respectivo, es decir, 'el directorio del usuario no existe'. Hemos estado utilizando otra declaración 'si' usando la función chdir() dentro de ella. El propósito de usar la función chdir() aquí también es el mismo que hicimos en la instrucción if anterior, que es para verificar si el directorio existe o no usando la condición “/temp”!=0. La única diferencia es el uso de un nuevo nombre de directorio '/temp' en lugar de '/usuario' como puede ver en la imagen del código a continuación.







Si el directorio /temp no existe en el sistema, la función perror utilizada en la declaración 'si' arrojaría un mensaje de error 'El directorio /temp no existe' como se muestra en la imagen a continuación. Después del uso de ambas declaraciones 'si', hemos estado terminando este código con la declaración de retorno 0 de C. Ahora, el programa ha terminado. Hemos estado guardando nuestro código C usando el atajo Ctrl+S antes de su ejecución.





Ahora que el archivo se ha guardado en su sistema, tenemos que compilar el código C con el compilador 'gcc' que ya hemos montado en nuestro extremo. Usando esta instrucción, hemos estado creando su archivo de objeto 'p2.out' usando la opción -o en la instrucción.





Después de ejecutar el archivo de objeto creado 'p2.out' con los caracteres './', nos enteramos de que los dos directorios mencionados en la ruta de 'chdir' no existen en el sistema o el error que se muestra en el shell ha estado demostrando correctamente.



Conclusión

En este artículo de hoy, hemos demostrado el uso de la función chdir() de C en el sistema operativo Kali Linux. El primer ejemplo ilustra cómo se puede utilizar la función chdir() para cambiar un directorio de trabajo, es decir, pasar de un directorio a otro. El último ejemplo de C demuestra cómo podemos verificar si el directorio de trabajo actual especificado en la ruta de chdir() ha existido o no.