Función Readdir 3 C

Función Readdir 3 C

Cuando un usuario ingenuo comienza a aprender sobre el sistema operativo, él/ella conoce el sistema de archivos de ese sistema. Un directorio es esencialmente un tipo especial de archivo que se comporta como una base de datos de cualquier sistema operativo como Windows, Linux, Unix, etc. El sistema de archivos de los medios define cómo se clasifican y acceden los archivos. Del mismo modo, toda esa información se almacena en el directorio, incluida la ubicación física, el nombre, la fecha y las marcas de tiempo, las marcas de tiempo, los privilegios y otros detalles requeridos.

La función ReadDir () de POSIX en el sistema Linux ha sido ampliamente conocida por leer todos los archivos y carpetas de algún directorio específico. Dentro de este tutorial, analizaremos el uso de la función Readdir en Kali Linux.

Necesitamos utilizar la "Dirección.H ”Archivo de encabezado. Antes de leer los datos de un directorio en particular, debe abrirlos. Use la función OpenDir () para obtener acceso a un directorio. Está escrito de la siguiente manera en el archivo de encabezado "Diren.H ". Pero, estamos hablando de la función readdir () aquí. Para adquirir un acceso al directorio que vamos a leer, necesitamos utilizar la función OpenDir (). El archivo de encabezado "Dirección.h "contiene las definiciones para ambas funciones. Antes de continuar, debemos estar familiarizados con la sintaxis de la función ReadDir (). Las siguientes son la sintaxis y los archivos de encabezado requeridos:

  • #incluir
  • #incluir
  • Struct Dirent *Readdir (Dir *dira);

Ejemplo 1:

Use VIM o cualquier otro editor de su preferencia para construir o abrir un archivo. En este caso, readdirfile.C se usa como nombre de archivo y se emplea el editor VIM. Cuando escribimos este comando y presionamos el botón ENTER en el teclado, el editor VIM abre el archivo. El siguiente comando citado se ejecuta en Kali Linux:


Para abrir el modo de inserción en VIM, presione la tecla "Escapar" en el teclado y luego presione el botón 'I' para mencionar el modo de inserción. Luego, como se muestra en la siguiente pantalla, comience a escribir el código en el archivo. Simplemente incluimos los archivos de encabezado, definimos y inventamos la fuente POSIX en las primeras seis líneas de código.

La función principal comienza a construir un directorio de puntero llamado Dir, que se requiere ya que el método OpenDir () devuelve un puntero Dir. Esta función requiere una ruta de cadena a un directorio. En la siguiente línea, definimos el punto de estructura directa de entrada que luego se utiliza en la función readDir () para mostrar el nombre del directorio en el directorio de corriente especificado. Como puede ver en la instrucción IF, aplicamos la función OpenDir que toma el carácter '/' y apunta al directorio raíz del directorio actual.

Verificamos si el directorio raíz no es nulo en la declaración condicional. Si es así, mostramos un error usando la función Perror. La línea "Contenido de la raíz:" se imprime en la declaración delse. Luego, usando un bucle de tiempo en la función ReadDir, verifique que no esté volviendo nulo, lo que indica que no hay más directorios en el directorio o carpeta especificados. El nombre del directorio se imprime utilizando una entrada de variable de puntero dentro del bloque de bucle While. Después de que haya hecho lo que desee con el directorio, puede usar la función cerrada () de POSIX fuera del bloque de bucle While para cerrar el directorio abierto. Guardemos primero el siguiente código:


Escriba el comando como se muestra en la siguiente imagen para compilar el código C con el compilador GCC y guarde la salida en el archivo de salida u objeto requerido. Si no escribe el comando que sigue el indicador -o, el compilador guardará su archivo como un "A.archivo fuera "por defecto. Si el evento de que el archivo de salida ya existe en el directorio, este comando lo sobrescribirá. Construimos un "readdirfile.archivo de salida "en nuestro escenario. Si se compila correctamente sin errores ni advertencias en la línea de comando, simplemente ejecutarlo. De lo contrario, arregle el código y vuelva a compilarlo en el shell. El siguiente comando citado se ejecuta en Kali Linux:


Para ejecutar el archivo de salida, use el siguiente comando que muestra la salida del archivo en la pantalla o cualquier otro comando contenido en el código. El método ReadDir en nuestro código muestra los nombres de los directorios de la carpeta raíz. Esto también muestra los archivos que existen en el directorio. El siguiente comando citado se ejecuta en Kali Linux:

Ejemplo 2:

Ahora, use el editor VIM para crear un nuevo archivo llamado "ReadDireFile2.C". Esto creará un archivo nuevo y lo abrirá en el editor. Presione "Escape" y presione la tecla 'I' en el teclado para habilitar el modo de inserción/edición en el editor. El siguiente comando citado se ejecuta en Kali Linux:


Después de eso, copie las siguientes líneas de código. El código inicial es el mismo, pero los nombres de las variables se cambian. La ruta de directorio de trabajo actual se suministra a la función OpenDir utilizando el punto (.) Carácter en este código. Después de eso, vea si devuelve nulo o no. Si devuelve NULL, use la función Perror para mostrar el error y salir de la función principal. La variable de archivos int se usa para mostrar el archivo y la numeración de la carpeta en el directorio actual. Incrementamos esta variable por 1 en el bucle While, luego utilizamos el comando printf para imprimir su valor junto con el nombre del archivo o carpeta. Fuera del bucle While, cierre el directorio usando el método cerrado.


Ahora, compile el código y almacene la salida en el "redDirFile2.Fuera de salida ". El siguiente comando citado se ejecuta en Kali Linux.


El comando "LS" se puede utilizar para mostrar una lista de todos los archivos y carpetas en un directorio. El siguiente comando citado se ejecuta en Kali Linux:


Después de ejecutar el archivo de salida, el compilador muestra todos los archivos en el terminal que reside en el directorio actual. El siguiente comando citado se ejecuta en Kali Linux:

Conclusión

Cualquier sistema de archivos puede consistir en muchos archivos y directorios que contengan más datos dentro de ellos. Este artículo trata sobre el uso de la función ReadDir de C para leer todos los archivos y carpetas del directorio de trabajo actual del sistema.