El usuario leerá una línea y yo retendré la primera palabra como comando para execvp.
Digamos que escribirá “archivo gato.txt” … el mando será cat . Pero no estoy seguro de cómo usar esto execvp()
leí algunos tutoriales pero todavía no lo entendí.
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *buf;
char command[32];
char name[32];
char *pointer;
char line[80];
printf(">");
while((buf = readline(""))!=NULL){
if (strcmp(buf,"exit")==0)
break;
if(buf[0]!=NULL)
add_history(buf);
pointer = strtok(buf, " ");
if(pointer != NULL){
strcpy(command, pointer);
}
pid_t pid;
int status;
if ((pid = fork()) < 0) {
printf("*** ERROR: forking child process failed\n");
exit(1);
}
else if (pid == 0) {
if (execvp(command, buf) < 0) {
printf("*** ERROR: exec failed\n");
exit(1);
}
}
else
while (wait(&status) != pid)
;
free(buf);
printf(">");
}///end While
return 0;
}
¿Qué quieres decir con que no lo entiendes? Por favor sé más específico.
– SSC
18 de diciembre de 2014 a las 8:23
No sé qué argumentos necesito pasar en execvp.
– Axel
18 de diciembre de 2014 a las 8:26