SoloCodigo

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: nicokiki en Domingo 2 de Mayo de 2004, 01:34

Título: System Calls
Publicado por: nicokiki en Domingo 2 de Mayo de 2004, 01:34
Hola gente, estoy haciendo un sistemita q comparte archivos en una red local y un servidor para mandarlos. El tema del servidor esta listo pero tengo un problema con los archivos. El cliente ingresa el directorio a compartir con los demas y lo q no se como hacer es para obtener todos los archivos q estan en ese sirectorio. O, sea, se como abrrir un directorio, q es con OPENDIR y se como obtener los datos de los archivos con LSTAT o STAT, pero no se como abrir un directorio e ir moviendome por los arhcivos.

Se entiende???

Salu2"!!!!!!
Título: Re: System Calls
Publicado por: NRM en Lunes 3 de Mayo de 2004, 00:45
Espero que este src te sirva.

Citar
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>

int main (int argc, char *argv[])
{
        DIR *dir;
        struct dirent *mi_dirent;

        if (argc != 2)
        {
                printf ("%s dir\n", argv[0]);
                exit (EXIT_FAILURE);
        }
   
        if ((dir = opendir(argv[1])) == NULL)
                perror ("opendir");
   
        while ((mi_dirent = readdir(dir)) != NULL)
                printf ("%s\n", mi_dirent->d_name);

        closedir (dir);
        exit (EXIT_SUCCESS);
}
Título: Re: System Calls
Publicado por: nicokiki en Lunes 3 de Mayo de 2004, 02:57
Gracias.
Muy bueno, lo q mandaste. No sabia como unir las calls q tenia, pero ahora si.
Ahora, una ultima pregunta: como sabemos, la extension de los archivos en GNU/LINUX no significa nada, o sea, q un archivo termine en .txt no implica q sea un archivo de texto, bueno, eso es lo q quiero, saber el tipo de archivo q estoy leyendo. Si lo saben buenisimo


Salu2!!!!!
Título: Re: System Calls
Publicado por: NRM en Lunes 3 de Mayo de 2004, 05:48
Podrias usar un pipe que corre el commando file, aunque no me parece una buena implementacion es lo unico que se me ocurre por el momento. :P