elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema de exec secuencial de archivos[C]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema de exec secuencial de archivos[C]  (Leído 1,487 veces)
MrJava

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Problema de exec secuencial de archivos[C]
« en: 4 Abril 2013, 16:24 pm »

Buenas tardes.
Soy nuevo en estos foros y me preguntaba si no sería mucha molestia que me ayudaraís con un problema que tengo:

  Mi programa se dedica a abrir un directorio, buscar los ficheros que contiene y con cada fichero, ejecutar un mandato.(NOTA: No esta del todo escrito aqui):

int main(int argc, char* argv[])
{
  int error = 0;
  DIR * dir_ini;

  if(((dir_ini = opendir(argv[1])) != NULL) && ((chdir(argv[1])) == 0)) /*Abrimos el directorio inicial*/
  {
    struct dirent * archivo;
    char * nombre;
    int status, pid, fd[2];
    while((archivo = readdir(dir_ini)) != NULL) /*Vamos recorriendo su contenido*/
     {
        nombre = (archivo->d_name);
         pipe(fd);
         pid = fork();
         switch(pid)
         {
            case -1:
              perror("fork");
              exit(1);
             case 0: /* El hijo pasa los parametros */
              close(fd[0]);
              close(1);
              dup(fd[1]);
              close(fd[1]);
              printf("%s/%s\r", dir_ini, nombre); /*Paso del formato al string*/
              break;

             default: /* El padre ejecuta el mandato */
              close(fd[1]);
              close(0);
              dup(fd[0]);
              close(fd[0]);
              while(pid != wait(&status));
              error = execvp(argv[5],&argv[5]); /*Argv[5] es el mandato a ejecutar    una vez por archivo, como por ejemplo "wc -l" */
              error = 4;
              fprintf(stderr,"%s: Error(%d), %s\n",argv[0],error,"No se puede ejecutar el mandato");
              exit(error);
       }
     }
  }
}

Mi problema esta en que mi programa solo lo ejecuta con un archivo, en vez de ir uno por uno ejecutandolo.

Alguna idea?

Gracias por vuestro tiempo. :P


« Última modificación: 4 Abril 2013, 16:45 pm por MrJava » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Db o archivo secuencial????
Programación Visual Basic
_Sergi_ 1 1,816 Último mensaje 27 Febrero 2006, 14:11 pm
por WarGhost
Archivo Secuencial
Programación Visual Basic
YEXBOND007 1 2,020 Último mensaje 30 Abril 2007, 05:04 am
por Sancho.Mazorka
exec y sus derivadas « 1 2 »
Programación C/C++
NewBe 10 8,684 Último mensaje 2 Noviembre 2011, 06:27 am
por Foxy Rider
Problema en codigo. Escritura y Lectura de un archivo secuencial
Programación C/C++
traviatØ 1 3,330 Último mensaje 26 Octubre 2012, 17:17 pm
por rir3760
Lectura de archivo secuencial a acceso directo
Programación C/C++
josri 3 3,632 Último mensaje 16 Noviembre 2012, 02:14 am
por josri
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines