Proyecto Minishell

maxromero
13 de Abril del 2008
Buenas!

Estoy desarrollando un minishell para Linux usando las siguientes estructuras:

. un arreglo estatico llamado "comando" en el cual se ingrese el comando que quiero ejecutar..x ej: "ls /bin"

.una matriz estatica en la cual en cada posicion de la misma voy ingresando "las partes del comando", o sea, utilizando strtok voy separando "comando" e ingresando "ls" en matriz[o], "/bin" en matriz [1]...y asi...

mi problema surge con execv...no me ejecuta mi "comando" ¬¬...

C me detecta esto:
maxr_minishell.c: En la función ‘main’:
maxr_minishell.c:33: error: tipos incompatibles en la asignación
maxr_minishell.c:44: aviso: se pasa el argumento 2 de ‘execvp’ desde un tipo de puntero incompatible


aqui les dejo el codigo...espero q puedan ayudar :)

[code]#include <sys/types.h>
#include <sys/wait.h>
#include <string.h>

int main(int argc, char *argv[], char *envp[]){
char matriz[50][50];
char comando[100];
char *puntero;
int cid;
int status;
int pos;

pos = 0;

while(1) {
printf("maxr_minishell>>");
gets(comando);
puntero = strtok(comando," ");

while (puntero != NULL){
strcpy(matriz[pos],puntero);
puts(matriz[pos]);
pos = pos +1;
puntero = strtok(NULL," ");

}
matriz[pos]='';

cid = fork();

if (cid<0) {
printf ("Error creando hijo! %d %sn",cid,strerror(cid));
exit (EXIT_FAILURE);
}

if (!cid) {
puts(matriz[0]);
execvp (matriz[0],matriz);

exit(errno);

} else {

wait(&status);


}

}

}[/code]