Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: DraKKaR en 31 de Marzo de 2004, 11:22:02 PM

Título: Obtener Que Ficheros Tiene Un Directorio En Linux
Publicado por: DraKKaR en 31 de Marzo de 2004, 11:22:02 PM
 Hola, me preguntaba si existen funciones de C para obtener el nombre todos los ficheros que hay en un directorio. La API de Windows te proporciona funciones para ello, pero para Linux no he encontrado nada... ¿sabeis de alguna?
Título: Obtener Que Ficheros Tiene Un Directorio En Linux
Publicado por: Mars Attacks en 01 de Abril de 2004, 09:42:09 PM
 ¿Pero tú no has aprobado sistemas operativos, malandrín? En las prácticas dábamos eso, entre otras cosas.
Ahora no recuerdo nada de nada, pero por alguna parte tengo la estructura que maneja el tema de directorios. Si la encuentro antes de que nadie ponga nada, te lo paso.
Título: Obtener Que Ficheros Tiene Un Directorio En Linux
Publicado por: sés en 01 de Abril de 2004, 10:29:09 PM
 En DOS eran algo como findfirst()/findnext()...
Título: Obtener Que Ficheros Tiene Un Directorio En Linux
Publicado por: DraKKaR en 02 de Abril de 2004, 01:00:59 AM
 Mars, aprobé sistemas operativos hace tantos años... ya ni me acordaba, pero es cierto ahí estaba la clave: las funciones opendir/readdir/closedir. Sencillisimo.

Gracias por responder.
Título: Obtener Que Ficheros Tiene Un Directorio En Linux
Publicado por: vicho en 02 de Abril de 2004, 02:05:50 AM
 y las funciones son casi las mismas, si en el K&R explicaban como hacerlo y no creo que expliquen en ese libro algo que no sea ansi asi que debe de andar sin problemas.

lo hize una vez pero hace mucho tiempo que no lo hago denuevo, de todas formas es algo simplisimo, estructuras dirent opendir,readdir,rewindir etc
Título: Obtener Que Ficheros Tiene Un Directorio En Linux
Publicado por: pekesan en 03 de Abril de 2004, 01:09:28 AM
 Para abrir un fichero

#include
#include

DIR *opendir(char *dirname);

Para lectura de las entradas de un directorio, las mismas librerías y

struct dirent *readdir(DIR *dirp);

Para cierre de un directorio

int closedir (DIR *dirp);

Control del puntero de lectura de un directorio

void seekdir(DIR *dirp,long loc);  //Situa el puntero de lectura
long telldir(DIR *dirp); //Devuelve la posicion actual del puntero
void rewinddir(DIR *dirp); //Situa el puntero de lectura al principio del directorio

A partir de ahí solo tiene que mirarte un poco en el man la defición de las extructuras y de sus campos...si necesitas más info...

Pazzzzzzzzzzzzzzzzzz
Título: Obtener Que Ficheros Tiene Un Directorio En Linux
Publicado por: Mars Attacks en 03 de Abril de 2004, 02:09:18 AM
 Pues me alegro que te haya servido, porque busqué por todas partes la chuleta con esas funciones y me temo que la he perdido... :huh: