Mi WordPress En La Red…

Funciones opendir, readdir y closedir en C

Posteado por: pasky en: 5 agosto, 2009

La función opendir se usa para abrir un directorio. Su prototipo es:

DIR *opendir(const char *nombre);

El único parámetro que recibe es el nombre del directorio que se quiere abrir. Devuelve un puntero al flujo de directorio (DIR) o NULL en caso de error. Este puntero se colocará en la primera entrada del directorio.

La función readdir sirve para leer las entradas del directorio abierto con opendir. Su prototipo es:

struct dirent *readdir(DIR *dir);

Recibe como parámetro el puntero al flujo de directorio (DIR) que se obtuvo con opendir y devuelve un puntero a una estructura dirent o NULL en caso de error o fin del directorio. Esta estructura dirent representa la siguiente entrada de directorio al que apunte dir.

La función closedir cierra el flujo de directorio que se obtuvo con opendir. Su prototipo es:

int closedir(DIR *dir);

Recibe como parámetro el puntero al flujo de directorio (DIR) y devuelve 0 en caso de éxito y -1 en caso de error.

Y nada mejor que un ejemplo para entenderlo:

#include <sys/types.h>
#include <dirent.h>
#include <stdlib.h>
#include <stdio.h>

int main (int argc, char *argv[]){

 /* Variables */
 DIR *dirp;
 struct dirent *direntp;

 /* Comprobamos los argumentos */
 if (argc != 2){
 printf("Uso: %s directorio\n", argv[0]);
 exit(1);
 }

 /* Abrimos el directorio */
 dirp = opendir(argv[1]);
 if (dirp == NULL){
 printf("Error: No se puede abrir el directorio\n");
 exit(2);
 }

 /* Leemos las entradas del directorio */
 printf("i-nodo\toffset\t\tlong\tnombre\n");
 while ((direntp = readdir(dirp)) != NULL) {
 printf("%d\t%d\t%d\t%s\n", direntp->d_ino, direntp->d_off, direntp->d_reclen, direntp->d_name);
 }

 /* Cerramos el directorio */
 closedir(dirp);
}

3 comentarios hacia "Funciones opendir, readdir y closedir en C"

este cogigo me da error con el dirent porfavor si podrian ayudarme

Este codigo me marca error en undefine symbol d_ino,d_off,d_reclen esperoooo puedan ayudarme porfavor lo mas rapido posible

trabaja con wordpress??? el opendir… ya que me da error al crear la ruta del directorio
$ruta = “./fotos_galeria/uploads/”;
or
$ruta = bloginfo(‘template_directory’) “/fotos_galeria/uploads/”;

agradeceri de su apoyo
omar galaviz

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.