Exec en funcion de argumentos
Publicado por Miguel Ángel (5 intervenciones) el 10/05/2019 22:14:41
Hola a todos,
tengo que hacer un ejercicio en el cual tengo que sustuir las funciones de libreria sleep y system por llamadas al sistema (fork(), exec(), exit(), wait(), etc).
El problema me viene cuando tengo que ejecutar lo que haya dentro de cmd con exec en lugar de con system. No sé como dividir los argumentos ni como detallar el path de cada comando.
Alguien me podría ayudar? Por el momento tengo esto hecho: (aún me queda implantar el exec en lugar del system)
tengo que hacer un ejercicio en el cual tengo que sustuir las funciones de libreria sleep y system por llamadas al sistema (fork(), exec(), exit(), wait(), etc).
El problema me viene cuando tengo que ejecutar lo que haya dentro de cmd con exec en lugar de con system. No sé como dividir los argumentos ni como detallar el path de cada comando.
Alguien me podría ayudar? Por el momento tengo esto hecho: (aún me queda implantar el exec en lugar del system)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
int main(int argc, char *argv[]) {
char cmd[256];
int a;
if (argc<2){
Error("Insufficient arguments: exec_in <sec> <cmd> [args...]");
}
pid_t x = fork();
if(x==-1){
perror("Fork error");
}
if(x==0){
printf("I'm the son\n");
sleep(atoi(argv[1]));
cmd[0]='\0';
}
if(x>1){
wait(0);
printf("I'm the father\n");
for(a=2;a<argc;a++){
strcat(cmd,argv[a]);
strcat(cmd," ");
}
system(cmd);
}
exit(0);
}
Valora esta pregunta


0